以下是 Python 中常见的命名规范、参数用法及在大型项目中常用的操作模式,供记录参考:
1. 命名规范(Naming Conventions)
| 前缀/形式 | 含义 | 示例 |
|---|---|---|
_age | 单下划线:弱“私有”标记(可访问但不建议外部使用) | self._age = 30 |
__age | 双下划线:名称改写(name mangling,类外访问需 _ClassName__age) | self.__age = 30 |
__age__ | 双前后下划线:系统保留(魔法方法/特殊属性) | __init__, __str__ |
age | 普通变量/属性 | age = 30 |
ALL_CAPS | 常量 | MAX_RETRIES = 5 |
mixedCase | 驼峰式(少用,Pytho 不推荐,常见于 Java 风格) | MixedCaseClass |
snake_case | 下划线式(Python 推荐) | compute_value() |
2. 参数与调用约定(Function Signatures)
-
*args:可变位置参数,将额外的位置参数收集为元组。def func(x, *args):print(x, args) # 调用:func(1, 2, 3) -> x=1, args=(2, 3) -
**kwargs:可变关键字参数,将额外的关键字参数收集为字典。def func(x, **kwargs):print(x, kwargs) # 调用:func(1, a=2, b=3) -> x=1, kwargs={'a':2, 'b':3} -
位置仅参数(Python 3.8+):在参数列表开头使用
/指定,仅允许通过位置传递。def func(a, b, /, c, d):... # a、b 只能作为位置参数传入 -
仅关键字参数:在
*后的参数必须通过关键字传递。def func(a, *, b, c):... # b、c 必须以命名形式传入:func(1, b=2, c=3)
3. 装饰器(Decorators)
-
@decorator:语法糖,在定义函数/类时包装原对象。-
常见内置装饰器:
-
@staticmethod:定义无self参数的静态方法。 -
@classmethod:第一个参数为cls的类方法。 -
@property:将方法变为属性访问。
-
class C:@staticmethoddef foo():...@classmethoddef bar(cls):...@propertydef name(self):return self._name -
-
自定义装饰器:接受函数/类作为输入并返回包装/增强对象。
4. 类型注解(Type Hints)
-
参数注解:
def func(x: str, y: int): ...。 -
返回值注解:
def func(...) -> bool:。 -
常见用法:
def greet(name: str) -> None:print(f"Hello, {name}") -
typing模块:List,Dict,Optional,Union,Any,以及自 Python 3.9 起可直接用内置集合类型如list[int]。
5. 魔法方法与协议(Special Methods & Protocols)
-
常见魔法方法:
-
__init__,__repr__,__str__,__len__,__iter__,__enter__,__exit__等。
-
-
可迭代协议:实现
__iter__或者__getitem__。 -
上下文管理协议:实现
__enter__/__exit__,支持with语句。
6. 大型项目常用操作模式
-
日志记录(Logging)
import logging logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) -
配置管理:使用
yaml/json配置文件 +pydantic/dataclasses加载。 -
单元测试:
pytest框架,使用 fixtures、mock。 -
类型检查:
mypy、flake8、black来保持代码质量与一致性。 -
依赖管理:
poetry或pipenv。 -
持续集成(CI):GitHub Actions / GitLab CI,自动执行测试与静态检查。
-
文档生成:
Sphinx+autodoc/mkdocs。 -
数据库操作:ORM(如
SQLAlchemy、Django ORM)或直接使用asyncpg、psycopg2等。 -
异步编程:
asyncio、aiohttp、FastAPI。 -
缓存:
redis、memcached。
以上内容涵盖了 Python 中常见的命名规范、参数约定、装饰器、类型注解、魔法方法以及在大型项目中经常会遇到的关键操作模式,适合记录归纳。如需更深入示例或扩展,可进一步补充。