将属性重命名为_property的原因

时间:2012-07-07 01:25:26

标签: python coding-style

我昨天正在阅读collections.py的源代码。

namedtuple函数中,生成template字符串,然后在临时命名空间中exec

在命名空间字典中,property重命名为_propertytuple重命名为_tuple

我想知道这背后的原因是什么。这个重命名有什么问题有助于避免?

2 个答案:

答案 0 :(得分:10)

通常,标准库中有时会使用下划线名称来保持名称空间的清洁。

对于_tuple,这是必要的,因为你可以使用“tuple”作为字段名称:

>>> Example = namedtuple('Example', ['list', 'tuple', 'property'])
>>> e.list
[10, 20, 30]
>>> e.tuple
(40, 50, 60)
>>> e.property
'Boardwalk'

答案 1 :(得分:0)

避免关键字名称冲突。

假设我们有一个虚构的['when', 'who', 'why', 'where', 'with']

列表

即。如果没有翻译,我就无法输入my_name_tuple.with

彻底阅读关于命名元组的文档,你应该得到它。