Was ist eine schönere Alternative zu einem benannten Tupel _replace?
-
19-09-2019 - |
Frage
Nehmen Sie diesen Code:
>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts._replace works
Aber da es sich um eine unterstrichene Methode handelt, soll es intern und nicht verwendet werden. Gibt es eine Alternative? Ich möchte nicht:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
Denn das macht es zu einem gewöhnlichen Tupel und nicht zu einem benannten Tupel und tut:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
ist irgendwie dumm. :)
Ideen?
Lösung
Die Grundmethoden von namedtuple
Beginnen Sie mit einem anfänglichen Unterstrich müssen nur Namenskollisionen verhindern. Sie sollte nicht nur für den internen Gebrauch betrachtet werden:
Um Konflikte mit Feldnamen zu verhindern, beginnen die Methode und die Attributnamen mit einem Unterstrich.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow