¿Qué es una alternativa más agradable para un namedtuples _replace?
-
19-09-2019 - |
Pregunta
Tome este código:
>>> 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 alguna 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. :)
Las ideas?
Solución
La razón métodos de namedtuple
comienzan con un guión inicial es sólo para evitar conflictos de nombres. Ellos no deben ser considerados sólo para uso interno :
Para evitar conflictos con los nombres de campo, el método y atribuir nombres comienzan con un guión bajo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow