以下是 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 中常見的命名規范、參數約定、裝飾器、類型注解、魔法方法以及在大型項目中經常會遇到的關鍵操作模式,適合記錄歸納。如需更深入示例或擴展,可進一步補充。