Qu'est-ce qu'une plus belle alternative à un namedtuples _replace?
-
19-09-2019 - |
Question
Prenez ce code:
>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts._replace works
mais comme il est une méthode underscores il est censé être interne, et non utilisé. Y at-il une alternative? Je ne veux pas faire:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
Parce que en fait un tuple ordinaire, et non pas un namedtuple et faire:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
est un peu stupide. :)
Idées?
La solution
Les méthodes raison de namedtuple
commencent par un trait de soulignement initial est seulement pour éviter les collisions de noms. Ils ne doivent pas être considérés comme étant à usage interne :
Pour éviter les conflits avec les noms des champs, la méthode et les attributs commencer par un trait de soulignement.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow