Python 什么是一个更好的替代名称双倍替换?

Python 什么是一个更好的替代名称双倍替换?,python,namedtuple,Python,Namedtuple,以这个代码为例: >>> import urlparse >>> parts = urlparse.urlparse('http://docs.python.org/library/') >>> parts = parts._replace(path='/3.0'+parts.path) parts.\u replace可以工作,但由于它是一种带下划线的方法,所以应该是内部的,而不是使用。还有别的选择吗?我不想做: >>>

以这个代码为例:

>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts.\u replace可以工作
,但由于它是一种带下划线的方法,所以应该是内部的,而不是使用。还有别的选择吗?我不想做:

>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
因为这使它成为一个普通的元组,而不是一个命名的元组,并且执行以下操作:

>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
这有点愚蠢


想法?

namedtuple的reason方法以初始下划线开头,只是为了防止名称冲突。他们:

为防止与字段名冲突,方法名和属性名以下划线开头


在这里,人们可以说,为了避免这样的误解,加下划线更合适(a la
class
)。FWIW,namedtuple代码在发布之前经过了广泛的审查和讨论。构建配方是一项社区工作(请参阅),它在python-dev上经历了进一步的修订和审查。