什么';s将类或方法命名为“的约定”;“类”;用Python?

什么';s将类或方法命名为“的约定”;“类”;用Python?,python,naming-conventions,pep8,Python,Naming Conventions,Pep8,假设我有一个Python类,如下所示: class Student: def __init__(self, classs): self.classs = classs 现在,命名参数(和类属性)classs的约定是什么?我看到了classs以及klass,我想知道:它有什么惯例吗?没有在PEP8中找到它。实际上没有约定。我已经看到并且可能使用了klass,\u class,以及cls,PEP 8建议在这种情况下使用尾随下划线:class 详情请参阅: 单尾随下划线:按惯

假设我有一个Python类,如下所示:

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

现在,命名参数(和类属性)
classs
的约定是什么?我看到了
classs
以及
klass
,我想知道:它有什么惯例吗?没有在PEP8中找到它。

实际上没有约定。我已经看到并且可能使用了
klass
\u class
,以及
cls
,PEP 8建议在这种情况下使用尾随下划线:
class

详情请参阅:

单尾随下划线:按惯例用于避免冲突 使用Python关键字,例如

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


在我看来,PEP 8中的
类的正确答案很尴尬,而且可能有问题,正如其他地方对该答案的评论。PyCharm IDE似乎更喜欢类方法的
cls
,这让我很恼火,因为它的缩写是代码编写者喜欢的缩写,而klass
的可读性和可理解性或多或少仍然是一个拼写错误。因此,我想为这些情况提供一个替代方案,包括类包装器等:

我使用的是
,由于外壳原因,该类未保留

我知道很多人会说变量名应该是小写的,但是在Python中,对象和类型、类和函数、变量和预定义之间的界限都很模糊。例如,如果我要写:

NoneType = type(None)

你认为它应该被重命名为
NONE\u TYPE
,因为它是全局的吗
NoneType
是一个类,尽管它不是使用
class
关键字定义的。同样地,
Class
也是一个类,尽管它也是一个变量。通过利用它,我只是强调了一个方面而不是另一个方面。我对所有表示类型的变量都这样做。

我见过klass、clazz、cls。非常感谢,我忽略了这个例子。Django不允许字段名使用尾随下划线<代码>(fields.E001)字段名不能以下划线结尾。。该死的:D