为什么我应该对 namedtuple 使用 CamelCase?

Why should I use CamelCase for namedtuple?

假设这段代码 (ipython)

In [1]: from collections import namedtuple
In [2]: type(namedtuple)
Out[2]: function

你当然可以看到工厂函数 namedtuple 是一个 function。在这种情况下,我在 PEP-8 中看不到任何使用 classes 命名约定的提示。我只能看到 documentation 将其视为 class 作为命名约定。

在那种情况下,为什么要使用 classes 的命名约定?

您指的是对 namedtuple 返回的类型使用名称 Pointnamedtuple 是一个不错的函数,但它 returns 是一个 class(类型为 type 的东西)。并通过 PEP-8, class names should look LikeThis.

In [1]: from collections import namedtuple
In [2]: Point = namedtuple('Point', ['x', 'y'])
In [3]: type(Point)
Out[3]: type