[英]Python naming convention - namedtuples
在您提供的代码段中, Token
是一个命名元组 ,绝对不是常量。 它不遵循其他变量名称命名样式,只强调它是类工厂函数的事实。 如果你把它写成token
,PEP 0008样式检查器(比如PyCharm )就不会发出警告,但我认为这不是好习惯,因为这样做不会将它区分为类工厂名称。
所以,namedtuples归入类名在PEP 0008太糟糕了,没有说明更明确。 除了你提到的编写tokenizer的例子,这也可以在collections.namedtuple文档示例中看到:
Point = namedtuple('Point', ['x', 'y'])
Point3D = namedtuple('Point3D', Point._fields + ('z',))
Book = namedtuple('Book', ['id', 'title', 'authors'])
这里的关键是collections.namedtuple
。 正如文件所说,
collections.namedtuple(typename, field_names, verbose=False, rename=False)
返回名为
typename
tuple
子类 。 新子类用于创建类似于tuple
的对象,这些对象具有可通过属性查找访问的字段以及可索引和可迭代的字段。 子类的实例还有一个有用的docstring(带有typename和field_names)和一个有用的__repr__()
方法,它以name=value
格式列出元组内容。
没有违反PEP 8的规定; Token
是一个用户定义的类,它的名称应该大写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.