假设我有一个像这样的Python类:
class Student:
def __init__(self, classs):
self.classs = classs
现在,命名参数(和类属性)的约定是什么
classs
?我看到了 classs
以及 klass
,我想知道:是否有一些约定?在PEP8中没有找到它。
PEP 8 建议在这种情况下使用尾随下划线:
class_
。
有关详细信息,请参阅 https://www.python.org/dev/peps/pep-0008/#descriptive-naming-styles:
single_trailing_underscore_ :按惯例使用以避免冲突 带有 Python 关键字,例如
Tkinter.Toplevel(master, class_='ClassName')
在我看来,PEP 8 的
class_
的答案很尴尬,并且可能有问题,正如其他地方对该问题的答案所评论的那样。 PyCharm IDE 似乎更喜欢用 cls
作为类方法,这让我很恼火,因为它是一个程序员喜欢的缩写,而可以说或多或少可读和可理解的 klass
仍然是一个拼写错误。所以我想针对这些情况提出一种替代方案,包括类包装器等:
我用的是
Class
,由于外壳原因没有保留。
我知道很多人会说变量名应该小写,但是在Python中对象和类型、类和函数、变量和预定义之间的界限都是模糊的。例如,如果我写:
NoneType = type(None)
您是否认为它应该重命名为
NONE_TYPE
,因为它是全球性的? NoneType
是一个类,尽管它不是使用 class
关键字定义的。
同样,
Class
是一个类,尽管它也是一个变量。通过大写,我只是强调一个方面而不是另一个方面。我对代表类型的所有变量执行此操作。
并没有真正的约定。我见过 - 并且可能使用过 -
klass
、_class
和 cls
。