1.类名
类名使用首字母大写CapWords, 每个单词的首字母都大写,且单词之间没有下划线
class MyClass(object):
pass
2.常量
全大写+下划线,例如:MAX_VALUE
3.变量
小写字母+下划线,即蛇形命名
词之间用下划线分隔(snake_case)。例如 my_variable 或 get_data。
4.函数名
和变量一样
5.特殊方法
双下划线前缀和后缀,例如
__init__()
6.私有成员
如果一个方法或变量是私有的(即不打算在类的外部被直接访问),那么可以使用单个下划线前缀 _ 表示它是内部使用的。例如 _private_method()。如果它是真正意义上的私有成员,不打算在子类中被覆盖或访问,则可以使用双下划线前缀 __。然而,这并不会改变访问性,而只是触发了名称改写(name mangling)。
7.模块名
模块(Module)
定义:模块是一个包含 Python 代码的文件,通常扩展名为 .py。一个模块可以包含函数、类和变量等定义,以及可执行的代码。
用途:模块用于将相关的代码组织在一起,使得代码更加模块化和可复用。
命名:模块名应简短且描述性强,全为小写字母。例如,utils.py、database.py 等
模块名应短小精悍,尽量不超过一个单词,且全为小写
utils
database
8.包名
包(Package)
定义:包是一个包含多个模块的文件夹,用于进一步组织模块。包中必须包含一个特殊的 init.py 文件(可以为空),这个文件的存在标志着该目录是一个 Python 包。
用途:包用于组织相关的模块,使得项目结构更加清晰,并且可以支持复杂的层次结构。
命名:包名也应简短且描述性强,全为小写字母。例如,services、models 等。
和模块名一样,包名也应短小且全为小写
ps:额外补充
python中单下划线和双下划线定义方法时候的区别:
首先需要声明的是,单下划线和双下划线并做不到严格意义上的私有,知识具有不同的含意和作用.
单下划线 _
单下划线前缀(如 _private_method)在 Python 中并没有改变方法或属性的访问级别。它更像是一个约定或暗示,告诉其他开发者这些方法或属性是内部使用的,不应该从类的外部直接访问或修改它们。然而,这并不是强制性的,任何人都可以无视这个约定并直接访问这些方法或属性。
双下划线 __
双下划线前缀(如 __private_method)实际上会触发名称改写(name mangling)。这意味着 Python 解释器会修改该方法或属性的名称,使其变得不易从类的外部访问。具体来说,如果有一个名为 __private_method 的方法,Python 会将其内部重命名为 _classname__private_method,其中 classname 是包含该方法的类的名称。
class MyClass:
def __init__(self):
self.__private_attribute = "Private data"
def __private_method(self):
print("This is private")
obj = MyClass()
print(obj._MyClass__private_attribute) # 可以访问,但不建议这么做
obj._MyClass__private_method() # 同样可以调用
你可以看到,虽然可以通过 _MyClass__private_attribute 访问到该属性,但这并不是一个好的做法,因为它破坏了封装的原则。
虽然也不是真正的“私有”,但它通过名称改写提供了一定程度上的保护,使得这些属性或方法不太可能因为无意中的名字冲突而被外部代码访问。
因此:即使是双下划线,也只是增加了访问的难度而不是完全禁止访问。