Prendete questo codice:Qual è un'alternativa più gradevole a un _tuogo di namedtuples?
>>> 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. C'è un'alternativa? Io non voglio fare:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
causa che lo rende una tupla ordinaria, e non un namedtuple, e facendo:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
è un pò stupido. :)
Idee?
Ahaaaa ......... –
per quanto ne so non c'è mai stato un PEP per 'namedtuple', dove si potrebbe sostenere che * * suffisso una sottolineatura sarebbe più appropriato (à la' class_') solo per evitare tali equivoci. – tzot
La suffffazione potrebbe essere stata una scelta migliore anche se non avrebbe funzionato bene con l'opzione rename = True. FWIW, il codice namedtuple è stato ampiamente rivisto e discusso prima del rilascio. Costruire la ricetta è stato uno sforzo della comunità (si veda http://code.activestate.com/recipes/500261-named-tuples/) e ha subito ulteriori revisioni e revisioni su python-dev. –