首页主机资讯Ubuntu Python代码风格怎样规范

Ubuntu Python代码风格怎样规范

时间2025-12-16 21:50:06发布访客分类主机资讯浏览1000
导读: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 3pip
    • 安装命令: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
    • setup.cfg 或 tox.ini(Flake8 示例)
      • [flake8]
        max-line-length = 79
        ignore = E203,W503
        extend-ignore = E402 # 若需临时允许特定规则
  • 日常流程:
    • 格式化: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  
        
      • )
  • 注释与文档字符串
    • 函数 docstring(三重双引号,首行简述,空行后详述)
      • def add(a: int, b: int) -> int:
      • """返回两个整数的和。  
        
      • Args:  
        
      •     a: 第一个加数  
        
      •     b: 第二个加数  
        
      • Returns:  
        
      •     两数之和  
        
      • """  
        
      • return a + b  
        
    • 行内注释(# 后跟一个空格,与语句间隔 ≥2 空格)
      • count += 1 # 增加计数,用于统计处理过的条目数

四 团队协作与持续集成

  • 统一配置:将 Black/isort/flake8/pylint/mypy 的配置文件纳入版本控制,保证所有成员使用一致规则。
  • 提交前检查:在 Git 提交前或 CI 中运行格式化与检查命令,阻止不合规代码进入主分支。
  • 类型与测试:使用 mypy 做静态类型检查;使用 unittest/pytest 编写单元测试,保证改动不破坏既有功能。
  • 代码审查:结合 Git 流程与 Pull Request 进行审查,关注风格一致性与可读性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Python代码风格怎样规范
本文地址: https://pptw.com/jishu/773255.html
Ubuntu Python数据库连接怎样配置 Ubuntu下Python版本怎么切换

游客 回复需填写必要信息