有什么更好的替代namedtuples的_replace方法?
看这段代码:
>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts._replace 可以用
,但是因为它是一个带下划线的方法,所以它应该是内部使用的,不应该直接用。有没有其他的办法?我不想这样做:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
因为那样就变成了普通的元组,而不是命名元组。而且这样做:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
有点傻。:)
有什么好主意吗?
1 个回答
23
之所以namedtuple
的方法前面会加一个下划线,是为了避免名字冲突。它们并不是说只能内部使用:
为了避免和字段名发生冲突,这些方法和属性的名字都以下划线开头。