Возьмите этот код:Что лучше альтернативы namedtuples _replace?
>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts._replace works
но это подчеркнутый метод, он должен быть внутренним, а не используется. Есть ли альтернатива? Я не хочу делать:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
Потому что делает его обычный кортеж, а не namedtuple и делает:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
является своего рода глупо. :)
Идеи?
Ahaaaa ......... –
AFAIK там никогда не был PEP для 'namedtuple', где можно было бы утверждать, что * суффиксация * подчеркивание будет более подходящим (меню' class_') просто избегайте таких недоразумений. – tzot
Суффикс, возможно, был лучшим выбором, хотя он не будет работать с вариантом rename = True. FWIW, код namedtuple был тщательно рассмотрен и обсужден до выпуска. Построение рецепта - это усилия сообщества (см. Http://code.activestate.com/recipes/500261-named-tuples/), и он подвергся дальнейшему пересмотру и обзору на python-dev. –