在 Python 中将 class 或方法命名为 "class" 的约定是什么?

What's convention for naming a class or method as "class" in Python?

假设我在 Python 中有一个 class,如下所示:

class Student:
    def __init__(self, classs):
        self.classs = classs

现在,命名参数(和 class 属性)classs 的约定是什么?我看到 classsklass 我想知道:是否有一些约定?在 PEP8 中没有找到它。

并没有真正的约定。我见过 - 并且可能使用过 - klass_classcls.

PEP 8 建议在这种情况下使用尾随下划线:class_.

详情见https://www.python.org/dev/peps/pep-0008/#descriptive-naming-styles

single_trailing_underscore_ : used by convention to avoid conflicts with Python keyword, e.g.

Tkinter.Toplevel(master, class_='ClassName')

在我看来,PEP 8 中 class_ 的正确答案很尴尬,并且可能有问题,正如其他地方对该答案的评论一样。 PyCharm IDE 似乎更喜欢 cls 作为 class 方法,这让我讨厌它的编码器快乐缩写,而可以说或多或少可读和理解 klass 仍然是拼写错误。所以我想为这些情况抛出一个替代方案,包括 class 包装器等:

我用的是Class,由于大小写不保留

我知道很多人会说变量名应该小写,但是对象和类型、class和函数、变量和预定义之间的界线在[=27中都变得模糊了=].例如,如果我要写:

NoneType = type(None)

您认为应该重命名 NONE_TYPE 因为它是全球性的吗? NoneType 是一个 class,尽管它不是使用 class 关键字定义的。同样,Class 是一个 class,尽管它也是一个变量。通过大写,我只是在强调一个方面而不是另一个方面。我对所有代表类型的变量都这样做。