Что более хорошее альтернативно к 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)

довольно глупо.:)

Идеи?

8
задан Lennart Regebro 6 February 2010 в 12:40
поделиться

1 ответ

Причина, по которой методы nametuple начинаются с начального знака подчеркивания, заключается только в том, чтобы предотвратить столкновение имен. Они не должны рассматриваться только для внутреннего использования:

Для предотвращения конфликтов с именами полей, имена методов и атрибутов начинаются со знака подчеркивания.

20
ответ дан 5 December 2019 в 08:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: