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?

¿Fue útil?

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
scroll top