8

拿这个代码:

>>> 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)

有点愚蠢。:)

想法?

4

1 回答 1

21

namedtuple以初始下划线开头的原因方法只是为了防止名称冲突。它们不应被视为仅供内部使用

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

于 2010-02-06T12:43:21.520 回答