regola generale è: non utilizzare i nomi che vengono prese (ad esempio type
, file
, int
, ecc), indipendentemente dal fatto che siano in un elenco di parole chiave "riservate" o no (in quanto permette di pitone, non è davvero "riservato"). Questo è importante soprattutto per evitare di mettersi nei guai quando è effettivamente necessario utilizzare l'oggetto reale (senza notare che lo si esegue in modo locale).
Se si desidera utilizzare uno di questi nomi, aggiungere semplicemente _
alla fine (ad esempio type_
).
Nel tuo caso, dal momento che stai specificando type
come attributo di classe, dovrebbe essere considerato sicuro poiché è possibile accedervi solo tramite la sua classe (self.type
o SomeProfile.type
).
possibile duplicato di [È una cattiva pratica utilizzare un nome di funzione incorporato come attributo o identificativo del metodo?] (Http://stackoverflow.com/questions/9109333/is-it-bad-practice-to- use-a-built-in-function-name-as-an-attribute-or-method-ide) –
perché non usare semplicemente '_type'? –
@PadraicCunningham perché il carattere di sottolineatura principale viene utilizzato per i nomi dei membri privati a livello di classe o modulo (in base a PEP-0008). Per risolvere i nomi riservati scontrati, si consiglia di utilizzare il carattere di sottolineatura _trailing_. –