我是Python新手,我一直在阅读在线文档,并(尝试)遵循PEP 0008来获得一个好的Python代码风格。 我对在研究re库时在官方Pythondocs中发现的代码段很好奇:
import collections
Token = collections.namedtuple('Token', ['typ', 'value', 'line', 'column'])
我不明白为什么Token
变量以大写的第一个字母命名;我通读了pep0008,但我所看到的没有引用它。它应该不是token
而是TOKEN
如果它是一个常量(我知道它不是这样的)?在
在您提供的代码段中,
Token
是named tuple,绝对不是常量。它不遵循其他变量名命名样式,只是为了强调它是一个类工厂函数。 如果将pep0008样式检查器写成token
,则不会从pep0008样式检查器发出警告(例如PyCharm),但我认为这不是一个好的实践,因为这种方式无法将它区分为类工厂名称。在因此,namedtuples属于pep0008中的Class names。太糟糕了没有更明确地说明。 除了您提到的writing a tokenizer示例外,还可以在collections.namedtuple docs示例中看到:
这里的键是^{} 。文件上说
没有pep8冲突;
Token
是一个用户定义的类,它的名称应该大写。在相关问题 更多 >
编程相关推荐