O que é uma alternativa mais agradável a um _Place nomeado?
-
19-09-2019 - |
Pergunta
Pegue este código:
>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts._replace works
Mas como é um método sublinhado, ele deve ser interno e não usado. Existe uma alternativa? Eu não quero fazer:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
Porque isso o torna uma tupla comum, e não um nome de nome, e fazer:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
é meio estúpido. :)
Ideias?
Solução
O motivo dos métodos de namedtuple
Comece com um sublinhado inicial é apenas para evitar colisões de nome. Elas não deve ser considerado apenas para uso interno:
Para evitar conflitos com nomes de campo, o método e os nomes de atributos começam com um sublinhado.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow