python基础入门:附录:PEP8编码规范与代码格式化(Black工具)

Python代码风格与格式化权威指南:从PEP8到自动化实践

一、PEP8核心规范精要
  1. 命名规范矩阵
标识符类型 规范格式 示例 例外情况
模块名 全小写下划线式 data_processor 已有C扩展模块
类名 首字母大写的驼峰 DataValidator 内部类可用下划线
函数/方法名 全小写下划线式 calculate_mean 继承父类命名
常量名 全大写下划线式 MAX_RETRIES 模块级变量
保护型属性 单下划线开头 _internal_cache 子类可见属性
私有属性 双下划线开头 __secret_key 名称修饰(mangling)
类型变量 驼峰式+T后缀 AnyStrT PEP484类型提示
  1. 布局与格式规范
# ✅ 正确示范
def complex_function(
    param1: int,
    param2: str,
    *,
    verbose: bool = False
) -> tuple:
    """函数文档字符串示例
  
    Args:
        param1: 整型参数描述
        param2: 字符串参数描述
        verbose: 控制详细输出
      
    Returns:
        包含处理结果的元组
    """
    if verbose:
        print(f"Processing {
     
     param2}")
      
    result = (param1 * 2, param2.upper())
    return result

# ❌ 常见错误
class badExample:
    def __init__(self,a,b):  # 缺少空格
        self.a =a  # 运算符间距错误
        self.b= b
    def Calculate(self):  # 方法命名不规范
        return self.a+self.b  # 运算符间距
  1. 行长度与换行策略
# 优先使用括号隐式续行
result = (
    some_long_calculation()
    + another_function()
    - correction_factor
)

# 函数参数换行规范
def process_data(
    input_file: Path,
    output_dir: Optional[Path] = None,
    *,
    chunk_size: int = 1024,
    encoding: str = "utf-8"
) -> list[dict]:
    # 处理逻辑...
二、Black格式化工具实战
  1. 基础配置与使用
# 安装最新版
$ pip install black

# 基础格式化命令
$ black .  # 格式化当前目录所有文件

# 常用参数组合
$ black --line-length 120 --skip-string-normalization src/

# 差异检查模式(不实际修改)
$ black --check --diff .
  1. 配置文件示例(pyproject.toml)
[tool.black]
line-length = 100
target-version = ['py311']
include = '\.pyi?$'
exclude = '''
/(
    \.git
  | \.venv
  | build
  | dist
)/
'''
  1. 与预提交钩子集成
# .pre-commit-config.yaml
repos:
- repo: https://github.com/psf/black
  rev: 23.3.0
  hooks:
    - id: black
      args: [--config=./pyproject.toml]
  1. 特殊处理技巧
# 使用# fmt: off临时禁用格式化
# fmt: off
matrix = [
    [1, 0, 0],
    [0, 1, 0],
    [0, 0, 1],
]  # 保持矩阵格式
# fmt: on

# 字符串规范化控制
$ black --skip-string-normalization .  # 保留原始引号风格
三、多工具集成方案
工具 功能定位 典型命令 配置文件
Black 不可逆格式化 black . pyproject.toml
isort 导入排序 isort . .isort.cfg
flake8 静态检查 flake8 src/ .flake8
mypy 类型检查 mypy --strict . mypy.ini
pylint 代码质量分析 pylint **/*.py .pylintrc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵鑫亿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值