假设这个代码片段(ipython)
In [1]: from collections import namedtuple
In [2]: type(namedtuple)
Out[2]: function
Run Code Online (Sandbox Code Playgroud)
当然,你可以看到工厂函数namedtuple
是 a 。function
在这种情况下,我在 PEP-8 中看不到任何使用类命名约定的提示。我只能看到文档将其视为类作为命名约定。
在这种情况下,为什么要使用类的命名约定呢?
Point
您指的是使用返回的类型的名称namedtuple
。namedtuple
是一个函数,但它返回一个类(具有类型的事物type
)。在PEP-8 中,类名应该看起来像这样。
In [1]: from collections import namedtuple
In [2]: Point = namedtuple('Point', ['x', 'y'])
In [3]: type(Point)
Out[3]: type
Run Code Online (Sandbox Code Playgroud)