以下是 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 中常见的命名规范、参数约定、装饰器、类型注解、魔法方法以及在大型项目中经常会遇到的关键操作模式,适合记录归纳。如需更深入示例或扩展,可进一步补充。