【重要】什么是 PEP 8 规范

news/2025/9/26 8:53:18/文章来源:https://www.cnblogs.com/nxhujiee/p/19112466

PEP 8 是 Python 官方的代码风格指南,全称为 Python Enhancement Proposal 8(Python 增强提案 8),旨在通过统一编码规范提升代码的可读性、一致性和可维护性。以下是其核心内容与重要性:

一、PEP 8 的核心规范

  1. 代码布局

    • 缩进:使用 4 个空格(禁止混用 Tab 和空格)。
    • 行长度:每行不超过 79 字符(文档字符串或注释不超过 72 字符),长表达式需换行对齐。
    • 空行:顶层函数/类定义间空 2 行,类方法间空 1 行,逻辑无关代码段间空 1 行。
  2. 命名规范

    • 变量/函数:小写字母 + 下划线(如 calculate_total)。
    • 类名:大驼峰式(如 ClassName)。
    • 常量:全大写 + 下划线(如 MAX_CONNECTIONS)。
    • 避免混淆:禁用 lOI 作为单字符变量名。
  3. 导入语句

    • 顺序:标准库 → 第三方库 → 本地模块,每部分用空行分隔。
    • 格式:每行一个导入(如 import os),避免通配符导入(如 from module import *)。
  4. 空格使用

    • 运算符两侧:加空格(如 x = y + 1)。
    • 括号/逗号后:不加空格(如 func(a, b))。
    • 关键字参数= 前后不加空格(如 def func(color='red'))。
  5. 注释与文档字符串

    • 块注释:与代码同级缩进,段落间用 # 空行分隔。
    • 行内注释:与代码隔 2 个空格(如 x = x + 1 # 增量)。
    • 文档字符串:用三引号包裹,说明模块/类/函数的用途。

二、遵循 PEP 8 的重要性

  1. 提升可读性

    • 统一命名、缩进和空格规则,使代码更易理解。例如:
      # 非 PEP 8
      def calc(a,b): return a+b# PEP 8 风格
      def calculate_sum(a, b):return a + b
      
  2. 减少错误

    • 规范缩进和空格可避免语法错误(如混用 Tab/空格导致的缩进错误)。
    • 明确命名规则能减少变量混淆(如区分 user_listuserList)。
  3. 促进团队协作

    • 统一风格降低多人协作时的理解成本,例如导入顺序和空行规则能快速定位代码模块。
  4. 符合社区惯例

    • Python 核心库和开源项目(如 Django、Requests)均遵循 PEP 8,遵循规范能更好地融入社区。

三、PEP 8 的实践建议

  1. 使用工具自动检查

    • PyCharm/VSCode:内置 PEP 8 提示,自动高亮不规范代码。
    • 命令行工具flake8pylint 可检测违规并给出修复建议。
    • 格式化工具autopep8black 能自动格式化代码。
  2. 逐步优化旧代码

    • 无需一次性修改全部代码,可在维护时逐步调整。
    • 重点规范公共接口和频繁修改的部分。
  3. 平衡规范与灵活性

    • PEP 8 允许局部调整(如行长超限时合理换行),避免过度追求形式而忽略可读性。

四、示例对比

非 PEP 8 代码

import os,sys
def calc(a,b):if a>b: return aelse: return b
class test:def method1(self): print('hello')

PEP 8 风格代码

import os
import sysdef calculate_max(a, b):if a > b:return aelse:return bclass TestClass:def method_one(self):print("hello")

改进点

  • 导入语句分多行且按顺序排列。
  • 函数/类名更具描述性。
  • 缩进和空格符合规范。
  • 添加了必要的空行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用指南:华为坤灵:点燃中小企业智能化的星火

实用指南:华为坤灵:点燃中小企业智能化的星火pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

阻止HTML input元素(type=number)中输入字母e的方法

在HTML中,<input type=number> 元素允许用户输入一个数字,它可以包含正数、负数、整数、浮点数以及特殊字符,如 e表示科学计数法。然而,在某些情况下,你可能不希望允许用户输入字母 e。为了实现这一目标,可…

荣县规划和建设局网站如何建设企业网站

力扣138&#xff1a;随机链表的复制 题目描述&#xff1a; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff…

网站开发课表查询吉安工商注册官方网站

简介&#xff1a; 智能的运维平台&#xff0c;帮助企业业务平稳、智能、高效地运行。 每一起严重事故背后&#xff0c;必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。—— 海恩法则(Heinrich‘s Law) 随着云计算时代的到来&#xff0c;大量企业将自己的业务逐步迁移…

网站建设广西企业展厅建筑外观

自己总结的&#xff0c;给大家参考一下&#xff0c;

【Prompt学习技能树地图】利用GitHub-Prompt Engineering Guide进阶学习Prompt工程指南 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

没有服务器 怎么做网站机构改革 住房与城乡建设厅网站

1️⃣ Nikto漏洞扫描 Nikto是一个开源的Web扫描评估程序&#xff0c;它可以对目标Web服务器进行快速而全面的检查&#xff0c;以发现各种潜在的安全问题和漏洞。 &#x1f170;️ 如何使用 ❓ nikto -Display 1234ep -h [域名或IP地址] -o nikto.html # -h参数&#xff1a;指…

下载好模板该怎么做网站google优化推广

java生成指定范围的随机数 /*** 如何在程序中生成指定范围的随机数** 生成23-59之间的随机数*/ public class Test11 {public static void main(String[] args) {/*** Math.random() 生成&#xff08;0,1&#xff09;之间的小数&#xff0c;不包括0和1* 所以生成23-59之间的随…

深入解析:KRaft 运维从静态到动态 Controller

深入解析:KRaft 运维从静态到动态 Controllerpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

Windows时间同步列表注册表授时时间服务器

前言全局说明Wnindows 时间同步列表添加删除一、说明 1.1 环境: Windows 7 旗舰版二、时间同步列表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers三、授时时间服务器: 57种语言,…

常州网站建设要多少钱企业运营流程

本文将探讨嵌入式系统中的GPIO(通用输入输出)控制,着重介绍GPIO的原理和基本用法。我们将使用一个实际的示例项目来演示如何通过编程配置和控制GPIO引脚。将基于ARM Cortex-M微控制器,并使用C语言进行编写。 GPIO是嵌入式系统中最常见且功能最强大的接口之一。它允许硬件工…

epub如何让标题在竖直方向居中

这个页面的内容就只有标题,要独占这个页面居中,且适配不同的屏幕尺寸,下面是最好的办法。 <!DOCTYPE html> <html lang="zh"> <head><meta charset="UTF-8"><meta …

网站建设内存如何去掉 wordpress

目录 python实现修改3d旋转顺序 矩阵批量计算 因为矩阵相乘不能交换,所以3d旋转顺序不能交换。 python实现修改3d旋转顺序 import numpy as np from scipy.spatial.transform import Rotation as Rdef convert_rotation(y, x, z, from_order, to_order):# 创建一个旋转对象…

Apple Books 对 epub 支持的限定(未完待续)

不支持属性覆盖 像下面这种,前两个选择器(html和p)里的字体设置得删掉,不然任何一个都会导致后面的仿宋或楷体不生效。html {/*font-family: var(--songti);*/ }/* 普通段落 */ p {/* font-family: var(--songti);…

完整教程:区间dp,数据结构优化dp等6种dp,各种trick深度讲解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

win10开机输入密码后一直转圈,很长时间才登录到桌面

经过研究后,查看了系统日志有如下记录: 发现是winlogon通知订户 <Profiles> 正在长时间处理此通知事件(Logon) 然后发现耗时确实过长,花了将近5分钟 解决方法 最后是通过将用户缓存文件删除解决的,Win+R然…

安庆网站建设推荐安徽秒搜科技必应搜索引擎首页

解决办法可以参考&#xff1a;修改hosts 不生效? 三种方法解决

Windows11 右键菜单管理

Windows11 右键菜单管理 取消一些压根用不上的选项jcmaxx33@gmail.com jcmaxx33Team@github

Mac 安装PDF2zh

一、homebrew 1、安装homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 官网:https://brew.sh/zh-cn/ 2、加入PATH(USERNAME需更换) echo &g…

完整教程:leetcode (2)

完整教程:leetcode (2)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &qu…