Nella namedtuple
documentazione , si dice:
Any valid Python identifier may be used for a fieldname except for names starting with an underscore. Valid identifiers consist of letters, digits, and underscores but do not start with a digit or underscore and cannot be a keyword such as class, for, return, global, pass, print, or raise.
Perché namedtuple
s ha una struttura di campo dinamica. Fornisci un elenco di identificatori e crea una classe con field
s correlato.
Poiché ha un tipo di campo dinamico, gli sviluppatori cercano di evitare quante più condizioni possibili per rendere field_names
flessibile. Hanno chiamato i metodi della classe base con un trattino basso, ( _make()
, _replace()
, _asdict()
e _fields
) in modo da poter utilizzare nomi non sottolineati per i nomi dei campi o simili.
Nessun identificatore può iniziare con una cifra e nessun metodo di classe o proprietà o campo può avere il nome di una keyword
in python come regola generale. Per quanto riguarda l'ultima regola di denominazione namedtuple
field_name
, i nomi che iniziano con un carattere di sottolineatura non sono disponibili poiché sono riservati per i nomi di metodi e proprietà della classe namedtuple
.