type
status
date
slug
summary
tags
category
icon
password
Python 代码有一套“约定俗成”的命名规范,通常被称为 PEP 8(Python Enhancement Proposal 8),它是 Python 社区广泛遵守的代码风格指南。良好的命名规范有助于提高代码的可读性、可维护性以及一致性。以下是 PEP 8 中的一些主要命名规范总结:
命名规范
1. 模块(module)与包(package)命名
- 命名规则:通常使用全小写字母,可以用下划线分隔单词。
- 格式:
module_name.py
- 示例:
- 包名:与模块命名类似,包名通常也是全小写,避免使用下划线。
- 示例:
2. 类(Class)命名
- 命名规则:使用驼峰式命名法(CapWords,PascalCase),即单词首字母大写,且不使用下划线。
- 格式:
ClassName
- 示例:
- 异常类:异常类的命名也遵循驼峰式命名,并且通常以
Error
结尾。
- 示例:
3. 函数和方法(Function & Method)命名
- 命名规则:使用全小写字母,多个单词之间用下划线分隔。
- 格式:
function_name()
- 示例:
- 私有方法:如果函数或方法是类的私有成员(即不希望在类外部访问),可以在名称前加一个下划线
_
。
- 示例:
4. 变量(Variable)命名
- 命名规则:使用全小写字母,多个单词用下划线分隔。
- 格式:
variable_name
- 示例:
- 常量(Constant):常量使用全大写字母,单词之间用下划线分隔。
- 格式:
CONSTANT_NAME
- 示例:
- 私有变量:对于类的私有变量,通常在变量名前加一个下划线
_
。
- 示例:
5. 类的属性(Class Attributes)命名
- 命名规则:与普通变量命名规则相同,使用全小写并带有下划线分隔单词。
- 实例属性:类的实例属性通常使用全小写命名。
- 示例:
- 类属性:对于类属性(与实例属性不同),通常也是全小写,并用下划线分隔单词。
- 示例:
6. 私有变量和方法
- 单下划线
_
:表示变量或方法是内部使用的,即“非公开的”,但从技术上讲仍然可以从外部访问。这个是约定俗成的,通常开发者不会直接访问带有_
的变量或方法。
- 双下划线
__
(名称改写/名称修饰):表示变量或方法是类的私有成员,Python 会对这种变量名进行名称改写,防止子类意外覆写或访问。
- 示例:
- 在类外部,访问
__private_var
和__private_method
会变得困难,因为 Python 会将其重命名为_ClassName__private_var
和_ClassName__private_method
。
7. 全局变量(Global Variables)
- 全局变量一般不建议使用,但如果必须使用,命名方式与常量相似,通常使用全大写字母。
- 示例:
8. 函数参数的命名
- 函数的参数命名遵循与变量命名相同的规则,使用全小写,单词间用下划线分隔。
- 示例:
9. Python 内置命名冲突
- 避免使用 Python 的内置函数或模块名作为变量名或函数名,例如
list
、str
、id
、file
等。覆盖这些内置名称可能导致意外行为。
- 示例:
10. 方法的首参数 self
和 cls
- 在类的方法中,第一个参数通常是实例对象,约定使用
self
表示当前的实例。
- 类方法的第一个参数通常是类本身,约定使用
cls
表示当前类。
- 示例:
11. 测试函数的命名
- 在编写单元测试时,测试函数通常以
test_
开头,以便于测试框架(如unittest
或pytest
)识别。
- 示例:
12. Docstring 风格
- PEP 8 还建议为函数、类和模块编写文档字符串(docstring),以便清楚地说明其用途和使用方法。
- 示例:
13.Python的内置方法
在 Python 中,像
__init__
这样前后都有双下划线(即“双下划线包裹的命名”)的名称被称为 特殊方法 或 魔术方法(magic methods,或者 dunder methods,"dunder" 是 "double underscore" 的简写)。这些方法是 Python 语言的内置方法,具有特定的用途和行为,它们为类定义了特殊的行为。__init__
是 Python 的一个特殊方法,用于类的构造函数,当你创建类的实例时,这个方法会自动调用,用来初始化对象的属性。- Python 语言会自动调用这些方法,并且它们通常不应该被用户直接调用。例如,你不应该手动调用
obj.__init__()
,而是通过obj = MyClass()
来触发__init__
方法的调用。
双下划线包裹的名称是为 Python 内部使用而设计的,通常不建议你在自己的代码中创建类似的名称,避免与 Python 内置的特殊方法冲突。对于私有属性和方法,通常使用单下划线(如
_my_private_method
)来表示。一些实际的例子
- 比如下面这个
logging是一个包,而FileHandler则是这个包里的一个类。
总结
Python 的命名规范(基于 PEP 8)主要强调一致性和可读性,以下是主要的命名规则:
- 模块、包:全小写,单词之间用下划线分隔。
- 类:驼峰命名法(PascalCase)。
- 函数、方法、变量:全小写,单词之间用下划线分隔。
- 常量:全大写,单词之间用下划线分隔。
- 私有变量和方法:使用单下划线
_
表示内部使用,双下划线__
表示类私有。
- 双下划线包裹的方法 是 Python 的内置方法,它们为类定义了特殊的行为,例如对象的创建、销毁、字符串表示、比较、迭代等。
- 作者:CrystalPuNK
- 链接:https://crystalpunk.top/article/Tech/python/002
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。