Ubuntu Python代码风格怎样规范
导读:Ubuntu下Python代码风格规范与落地实践 一 核心规范 PEP 8 缩进与空格:统一使用4 个空格缩进;禁止使用 Tab 或与空格混用;二元运算符两侧各留1 个空格;逗号后留1 个空格,括号内侧不留空格。 行宽与换行:每行不超过7...
Ubuntu下Python代码风格规范与落地实践
一 核心规范 PEP 8
- 缩进与空格:统一使用4 个空格缩进;禁止使用 Tab 或与空格混用;二元运算符两侧各留1 个空格;逗号后留1 个空格,括号内侧不留空格。
- 行宽与换行:每行不超过79 个字符;优先用括号进行隐式换行,换行后在延续行增加4 个空格缩进;右括号/中括号/花括号可与首行对齐或放在延续块首列下方。
- 空行:模块级(文件顶部)与函数/类定义之间用2 个空行分隔;类内方法之间用1 个空行分隔;函数内部可按逻辑适度空行。
- 导入规范:导入放在文件顶部、文档字符串之后;按标准库 → 第三方库 → 本地应用分组,组间空一行;尽量使用绝对导入,避免通配符导入(from module import *)。
- 命名约定:函数/变量/属性用lowercase_with_underscores;类用CapitalizedWords;受保护属性以**_leading_underscore开头;私有属性以__double_leading_underscore开头;模块级常量用ALL_CAPS**;实例方法第一个参数为self,类方法第一个参数为cls。
- 表达式与语句:优先使用“if a is not b”而非“if not a is b”;判断容器为空用“if not somelist”,非空用“if somelist”;避免把 if/for/while/except 挤在一行;表达式过长用括号包裹并合理换行。
- 文档字符串与注释:模块、类、函数首条语句应为三重双引号的 docstring;块注释以“# + 空格”开头,行内注释与语句间隔至少2 个空格。
二 Ubuntu落地步骤
- 准备环境:确保已安装 Python 3 与 pip。
- 安装命令:sudo apt update & & sudo apt install python3 python3-pip
- 验证版本:python3 --version、pip3 --version
- 虚拟环境:为每个项目创建隔离环境,避免依赖冲突。
- 创建:python3 -m venv .venv
- 激活:source .venv/bin/activate
- 安装工具(在虚拟环境内):pip install black isort flake8 pylint mypy
- 配置工具(建议项目根目录加入):
- pyproject.toml(Black + isort 常用配置示例)
- [tool.black]
line-length = 79
target-version = [‘py38’,‘py39’,‘py310’,‘py311’,‘py312’]
include = ‘.pyi?$’ - [tool.isort]
profile = “black”
line_length = 79
- [tool.black]
- setup.cfg 或 tox.ini(Flake8 示例)
- [flake8]
max-line-length = 79
ignore = E203,W503
extend-ignore = E402 # 若需临时允许特定规则
- [flake8]
- pyproject.toml(Black + isort 常用配置示例)
- 日常流程:
- 格式化:black .
- 排序导入:isort .
- 静态检查:flake8 .;pylint your_package/
- 类型检查:mypy your_package/
- 编辑器/IDE:VS Code 安装Python 扩展并启用“Format on Save”;PyCharm 可直接使用内置 PEP 8 检查和重格式化(如 Ctrl+Alt+L)。
三 示例规范片段
- 命名与风格
- 函数/变量:calculate_area(radius), user_name
- 类:class Circle:
- 常量:MAX_RETRIES = 3
- 私有属性:self._cache, self.__internal_id
- 导入分组与顺序
- import os
- import sys
- from typing import Optional, List
- import requests
- from mypkg import utils
- 行宽与换行
- 长参数列表(悬挂缩进 + 4 空格)
- def fetch(
-
url: str, -
timeout: float = 5.0, -
headers: Optional[Dict[str, str]] = None, - ) -> bytes:
-
...
- 长表达式(运算符前换行,便于对齐与阅读)
- total = (
-
gross_wages -
+ taxable_interest -
+ (dividends - qualified_dividends) -
- ira_deduction -
- student_loan_interest - )
- 长参数列表(悬挂缩进 + 4 空格)
- 注释与文档字符串
- 函数 docstring(三重双引号,首行简述,空行后详述)
- def add(a: int, b: int) -> int:
-
"""返回两个整数的和。 -
Args: -
a: 第一个加数 -
b: 第二个加数 -
Returns: -
两数之和 -
""" -
return a + b
- 行内注释(# 后跟一个空格,与语句间隔 ≥2 空格)
- count += 1 # 增加计数,用于统计处理过的条目数
- 函数 docstring(三重双引号,首行简述,空行后详述)
四 团队协作与持续集成
- 统一配置:将 Black/isort/flake8/pylint/mypy 的配置文件纳入版本控制,保证所有成员使用一致规则。
- 提交前检查:在 Git 提交前或 CI 中运行格式化与检查命令,阻止不合规代码进入主分支。
- 类型与测试:使用 mypy 做静态类型检查;使用 unittest/pytest 编写单元测试,保证改动不破坏既有功能。
- 代码审查:结合 Git 流程与 Pull Request 进行审查,关注风格一致性与可读性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Python代码风格怎样规范
本文地址: https://pptw.com/jishu/773255.html
