在 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
的约定是什么?我看到 classs
和 klass
我想知道:是否有一些约定?在 PEP8 中没有找到它。
并没有真正的约定。我见过 - 并且可能使用过 - klass
、_class
和 cls
.
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,尽管它也是一个变量。通过大写,我只是在强调一个方面而不是另一个方面。我对所有代表类型的变量都这样做。
假设我在 Python 中有一个 class,如下所示:
class Student:
def __init__(self, classs):
self.classs = classs
现在,命名参数(和 class 属性)classs
的约定是什么?我看到 classs
和 klass
我想知道:是否有一些约定?在 PEP8 中没有找到它。
并没有真正的约定。我见过 - 并且可能使用过 - klass
、_class
和 cls
.
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,尽管它也是一个变量。通过大写,我只是在强调一个方面而不是另一个方面。我对所有代表类型的变量都这样做。