让我们说我在Python中有这样一个类:
class Student:
def __init__(self, classs):
self.classs = classs
现在,命名参数(和类属性)classs
的约定是什么?我看到了classs
以及klass
,我想知道:它有什么约定吗?没有在PEP8中找到它。
答案 0 :(得分:5)
PEP 8建议在这种情况下使用尾随下划线:class_
。
有关详细信息,请参阅https://www.python.org/dev/peps/pep-0008/#descriptive-naming-styles:
single_trailing_underscore_:由惯例用于避免冲突 使用Python关键字,例如
Tkinter.Toplevel(master, class_='ClassName')
答案 1 :(得分:1)
没有真正的约定。我见过 - 可能还有 - Buyin.Amount
,PlayerBuyinViewModel
和klass
。
答案 2 :(得分:1)
在我看来,来自PEP 8的class_
的正确答案是尴尬的,并且可能存在问题,如其他地方对该答案的评论。 PyCharm IDE似乎更倾向于使用cls
类方法,这使我的编码器快乐缩写感到恼火,而可以说或多或少可读且易懂的klass
仍然是拼写错误。所以我想为这些情况抛出一个替代方案,包括类封装器等:
我使用Class
,由于套管而未保留。
我知道很多人会说变量名称应该是小写的,但是对象和类型,类和函数,变量和预定义之间的界限在Python中都是模糊的。例如,如果我写的话:
NoneType = type(None)
你认为它应该被重命名为NONE_TYPE
,因为它是全球性的吗? NoneType
是一个类,但未使用class
关键字定义。同样地,Class
是一个类,尽管它也是一个变量。通过资本化,我只强调一个方面而不是另一个方面。我为表示类型的所有变量执行此操作。