有什么比命名元组 _replace 更好的替代品?

发布于 2024-08-20 03:21:50 字数 558 浏览 8 评论 0原文

采用以下代码:

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

有点愚蠢。 :)

有想法吗?

Take this code:

>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)

parts._replace works but as it is an underscored method, it's supposed to be internal, and not used. Is there an alternative? I don't want to do:

>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]

Because that makes it an ordinary tuple, and not a namedtuple, and doing:

>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)

is kinda stupid. :)

Ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

江心雾 2024-08-27 03:21:50

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

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

The reason methods of namedtuple start with an initial underscore is only to prevent name collisions. They should not be considered to be for internal use only:

To prevent conflicts with field names, the method and attribute names start with an underscore.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文