Что является более приятной альтернативой для _replace по имени?

StackOverflow https://stackoverflow.com/questions/2213102

  •  19-09-2019
  •  | 
  •  

Вопрос

Возьмите этот код:

>>> 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:]

Потому что это делает его обычным кортежом, а не по имени, и делает:

>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)

это глупо. :)

Идеи?

Это было полезно?

Решение

Причина методов namedtuple Начните с начального подчеркивания только для предотвращения столкновений имен. Они не следует рассматривать только для внутреннего использования:

Чтобы предотвратить конфликты с именами поля, метод и имена атрибутов начинаются с подчеркивания.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top