采取以下代码:

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

因为这使它成为普通的元组,而不是namedtuple,所以执行以下操作:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)

有点愚蠢。 :)

有想法吗?

最佳答案

namedtuple的方法开头带有下划线的原因仅是为了防止名称冲突。他们should not be considered to be for internal use only:

关于python - 有什么更好的替代namedtuples _replace的呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2213102/

10-12 07:25