Что является более приятной альтернативой для _replace по имени?
-
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
Начните с начального подчеркивания только для предотвращения столкновений имен. Они не следует рассматривать только для внутреннего использования:
Чтобы предотвратить конфликты с именами поля, метод и имена атрибутов начинаются с подчеркивания.
Не связан с StackOverflow