在 Python 编程中,遵循命名规则和约定有助于提高代码的可读性和可维护性。以下是 Python 中常见的命名规则和约定,基于 PEP 8(Python Enhancement Proposal 8)的指导:
1. 变量和函数名称
- 小写字母,单词间用下划线分隔(snake_case):
my_variable = 10 def my_function(): pass
2. 常量名称
- 全大写字母,单词间用下划线分隔:
MAX_CONNECTIONS = 100 DEFAULT_TIMEOUT = 20
3. 类名称
- 每个单词的首字母大写(PascalCase 或 CamelCase):
class MyClass: pass class AnotherExampleClass: pass
4. 模块和包名称
- 全小写字母,可以使用下划线分隔单词(推荐在某些情况下使用下划线分隔):
import my_module import mypackage.mysubpackage
5. 函数和方法参数
- 首个参数命名为
self
,表示类实例:class MyClass: def my_method(self): pass
- 类方法的首个参数命名为
cls
,表示类本身:class MyClass: @classmethod def my_classmethod(cls): pass
6. 私有变量和方法
- 以下划线开头,表示非公开:
class MyClass: def __init__(self): self._private_var = 10 def _private_method(self): pass
7. 内置名称
- 双下划线开头和结尾,这些名称在 Python 中有特殊意义,不要轻易覆盖:
class MyClass: def __init__(self): pass def __str__(self): return "MyClass instance"
8. 文件和目录结构
- 项目结构示例:
my_project/ ├── my_package/ │ ├── __init__.py │ ├── module_one.py │ ├── module_two.py ├── tests/ │ ├── __init__.py │ ├── test_module_one.py ├── README.md ├── setup.py
9. 命名冲突和避免
- 避免与 Python 内置名称冲突:
# 避免命名为 list, dict, etc. my_list = [1, 2, 3]
10. 其他约定
- 类属性和方法使用动词命名,例如
get_user
,update_record
等。 - 命名应尽量表达清晰含义,避免使用单字母变量名(除了循环变量如
i
,j
等)。
示例
class UserAccount:
def __init__(self, username, password):
self.username = username
self._password = password
def check_password(self, password):
return self._password == password
MAX_ATTEMPTS = 5
def create_user(username, password):
return UserAccount(username, password)
遵循这些命名规则和约定,有助于确保代码的可读性和一致性,便于团队协作和长期维护。