Tome este código:¿Cuál es una alternativa más agradable a un _replace namedtuples?
>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts._replace works
pero como es un método subrayada, se supone que debe ser interna, y no se utiliza. ¿Hay una alternativa? No quiero hacer:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
Debido a que hace una tupla ordinaria, y no un namedtuple, y haciendo:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
es un poco estúpido. :)
Ideas?
Ahaaaa ......... –
yo sepa nunca hubo un PEP para 'namedtuple', donde se podría argumentar que sufijación * * un guión sería más apropiado (a la' class_') sólo para evitar tales malentendidos. – tzot
El sufijo puede haber sido una mejor opción aunque no funcionaría bien con la opción rename = True. FWIW, el código namedtuple fue ampliamente revisado y discutido antes del lanzamiento. La construcción de la receta fue un esfuerzo de la comunidad (ver http://code.activestate.com/recipes/500261-named-tuples/) y se sometió a una revisión y revisión adicional en python-dev. –