Python_编程中代码注释相关格式 PEP8 — Python 官方代码风格指南

一、代码布局(Code Layout)

1. 缩进

复制代码
使用 4 个空格作为一级缩进。
禁止使用 Tab,也不要混用空格和 Tab。

2. 行长度

复制代码
每行代码 不超过 79 个字符(注释和文档字符串建议不超过 72 字符)。
长表达式换行时,推荐使用括号隐式续行(而非反斜杠 \)。
bash 复制代码
# 推荐:使用括号换行
foo = long_function_name(
    var_one, var_two,
    var_three, var_four
)

3. 空行

复制代码
顶级函数和类之间用 两个空行。
类中的方法之间用 一个空行。
函数内部可用空行分隔逻辑块(谨慎使用)。
bash 复制代码
def func_a():
    pass


def func_b():
    x = 1
    y = 2  # 逻辑分段
    return x + y


class MyClass:
    def method1(self):
        pass

    def method2(self):
        pass

二、注释规范(Comments)

1. 原则

复制代码
注释应解释 "为什么" 而非 "做什么"(代码本身应自解释)。
注释必须 与代码同步更新,过时注释比没有更糟。

2. 文档字符串(Docstring)

复制代码
所有模块、类、函数都应有 docstring。
使用 三重双引号 """,遵循 PEP 257。
描述功能、参数、返回值、异常等。
bash 复制代码
def calculate_tax(income: float) -> float:

    """计算个人所得税
    

    :param income: 税前收入
    :return: 应缴税额
    """
    return income * 0.1

3. 行注释

复制代码
与代码至少留 两个空格,以 # 开头,首字母大写,句尾加句号。
bash 复制代码
x = x + 1  # Increment counter.

三、导入语句(Imports)

1. 导入顺序(分组,每组之间空一行)

复制代码
标准库(如 os, sys)
第三方库(如 requests, numpy)
本地应用/项目模块
bash 复制代码
# 标准库
import os
import sys
from datetime import datetime

# 第三方库
import requests
from flask import Flask

# 本地模块
from . import config
from myapp.utils import helper

2. 其他规则

复制代码
每行只导入一个模块(避免 import os, sys)。
避免通配符导入:from module import * 是禁止的。
优先使用 绝对导入,必要时才用相对导入。

四、其他重要建议

复制代码
命名一致性:
    变量/函数:snake_case
    类名:CamelCase
    常量:UPPER_SNAKE_CASE
空格使用:
    逗号后、二元运算符两侧加空格:a = b + c
    括号内不加空格:func(a, b) 而非 func( a, b )

工具推荐(自动检查/格式化)

复制代码
Black:自动格式化代码(强一致性)
Flake8:检查 PEP 8 违规
pylint / ruff:更全面的静态分析
在 CI 或 pre-commit 中集成这些工具,可强制规范落地。

✅ 总结:

Python 的布局规范核心是 清晰、一致、可读。遵循 PEP 8 不仅提升个人代码质量,更是团队协作的基础。项目如有自定义规范,可在 PEP 8 基础上微调,但需确保 组内统一。

相关推荐
JAVA面经实录9175 分钟前
Java多线程并发高频面试100题(完整版·含答案·背诵版)
java·开发语言·面试
无限进步_14 分钟前
C++异常机制:抛出、捕获与栈展开
开发语言·c++·安全
小白学大数据18 分钟前
深度探索:Python 爬虫实现豆瓣音乐全站采集
开发语言·爬虫·python·数据分析
用户67570498850219 分钟前
Celery 太重了?这可能是你一直在找的 asyncio 任务队列
后端·python·消息队列
Cloud_Shy61819 分钟前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 下篇)
前端·后端·python·数据分析·excel
Xin_ye1008621 分钟前
C# 零基础到精通教程 - 第八章:面向对象编程(进阶)——继承与多态
开发语言·c#
程序员榴莲21 分钟前
网络编程入门 Python Socket 实现一个简单的用户认证系统
服务器·网络·python
m0_7488394926 分钟前
R包grafify:简单操作实现高效统计绘图
开发语言·r语言
知识分享小能手30 分钟前
Flask入门学习教程,从入门到精通, 认识Flask路由 — 知识点详解 (2)
python·学习·flask
AI棒棒牛30 分钟前
YOLO26改进创新 | 全网首发!VECA弹性核心注意力重塑全局建模,线性复杂度增强检测骨干,嘎嘎创新!
python·yolo·目标检测·yolo26·主干改进