C'è un modo per impedire alle variabili di cambiare il loro tipo in Python?

0

È utile che l'interprete derivi automaticamente il tipo di una variabile. Questo da solo è simile alla parola chiave auto in C ++ 11. Tuttavia, in Python le variabili possono cambiare tipo dopo essere state dichiarate per la prima volta. Questo potenzialmente può causare molti errori. Non ho visto alcun caso d'uso ragionevole per questo, oltre a cambiare da o a None .

Per motivi di prestazioni, PyPy afferma di essere scritto in ciò che chiamano RPython , che va in questa direzione. Tuttavia, sembra che non ci sia né uno standard per questo né un modo per far lamentare l'interprete del cambio di tipo.

C'è un modo per impedire alle variabili di cambiare il loro tipo in Python?

    
posta danijar 01.10.2014 - 13:47
fonte

1 risposta

2

Una variabile Python non è come una variabile C, vale a dire che non è una scatola con i dati al suo interno. Una variabile Python è più simile a una nota adesiva che è stata bloccata su una scatola con i dati al suo interno.

Il tipo di dati raramente della casella cambia, ma la nota adesiva può essere passata da una casella all'altra.

Quindi, il tipo non cambia davvero.

Detto questo, ci sono modi per limitarlo: utilizzare una classe con descrittori personalizzati per verificare e applicare il nuovo valore che si sta tentando di assegnare al nome della variabile sticky-note e utilizzare un metaclass personalizzato per impedire la variabile di classe nota adesiva da essere riassegnata a qualcos'altro.

Credo che i tratti Enthought abbiano questa capacità.

    
risposta data 16.10.2014 - 10:37
fonte

Leggi altre domande sui tag