Nehmen Sie diesen Code:Was ist eine schöne Alternative zu einem namedtuples _replace?
>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts._replace works
aber da es eine unterstrichene Methode ist, es soll intern sein, und nicht verwendet. Gibt es eine Alternative? Ich will nicht zu tun:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
Da, dass es einen gewöhnlichen Tupel macht, und kein namedtuple und tut:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
ist ein bisschen dumm. :)
Ideen?
Ahaaaa ......... –
AFAIK es gab nie eine PEP für 'namedtuple', wo man könnte argumentieren, dass * suffixing * ein Unterstrich wäre angemessener (à la' class_') nur zu vermeide solche Missverständnisse. – tzot
suffixing kann auch eine bessere Wahl gewesen wäre es nicht gut mit dem Umbenennungs = True Option funktionieren würde. FWIW, der Named-Code wurde vor der Veröffentlichung ausführlich besprochen und diskutiert. Der Aufbau der Rezeptur wurde ein Gemeinschaftsbemühung (siehe http://code.activestate.com/recipes/500261-named-tuples/) und unterzog weitere Überarbeitung und Überprüfung über python-dev. –