Che cosa è un bello alternativa a un namedtuples _replace?
-
19-09-2019 - |
Domanda
Prendete questo codice:
>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts._replace works
ma in quanto è un metodo sottolineato, si suppone di essere interno, e non utilizzati. Esiste un'alternativa? Io non voglio fare:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
A causa che lo rende una tupla ordinaria, e non un namedtuple, e fare:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
è un pò stupido. :)
idee?
Soluzione
La ragione metodi di namedtuple
iniziano con un carattere di sottolineatura iniziale è solo per prevenire conflitti di nomi. Essi non dovrebbero essere considerati per uso interno :
Per evitare conflitti con i nomi dei campi, il metodo e degli attributi nomi iniziano con un carattere di sottolineatura.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow