首页 > 其他分享 >PEP 8风格指南

PEP 8风格指南

时间:2024-05-23 10:19:37浏览次数:20  
标签:指南 缩进 Python 代码 PEP 风格 模块 应该

PEP 8风格指南

PEP是Python Enhancement Proposal的缩写,通常翻译为“Python增强提案”。每个PEP都是一份为Python社区提供的指导Python往更好的方向发展的技术文档,其中的第8号增强提案(PEP 8)是针对Python语言编订的代码风格指南。尽管我们可以在保证语法没有问题的前提下随意书写Python代码,但是在实际开发中,采用一致的风格书写出可读性强的代码是每个专业的程序员应该做到的事情,也是每个公司的编程规范中会提出的要求,这些在多人协作开发一个项目(团队开发)的时候显得尤为重要。我们可以从Python官方网站的PEP 8链接中找到该文档,下面我们对该文档的关键部分做一个简单的总结。

空格的使用

  1. 使用空格来表示缩进而不要用制表符(Tab)。这一点对习惯了其他编程语言的人来说简直觉得不可理喻,因为绝大多数的程序员都会用Tab来表示缩进,但是要知道Python并没有像C/C++或Java那样的用花括号来构造一个代码块的语法,在Python中分支和循环结构都使用缩进来表示哪些代码属于同一个级别,鉴于此Python代码对缩进以及缩进宽度的依赖比其他很多语言都强得多。在不同的编辑器中,Tab的宽度可能是2、4或8个字符,甚至是其他更离谱的值,用Tab来表示缩进对Python代码来说可能是一场灾难。
  2. 和语法相关的每一层缩进都用4个空格来表示。
  3. 每行的字符数不要超过79个字符,如果表达式因太长而占据了多行,除了首行之外的其余各行都应该在正常的缩进宽度上再加上4个空格。
  4. 函数和类的定义,代码前后都要用两个空行进行分隔。
  5. 在同一个类中,各个方法之间应该用一个空行进行分隔。
  6. 二元运算符的左右两侧应该保留一个空格,而且只要一个空格就好。

标识符命名

PEP 8倡导用不同的命名风格来命名Python中不同的标识符,以便在阅读代码时能够通过标识符的名称来确定该标识符在Python中扮演了怎样的角色(在这一点上,Python自己的内置模块以及某些第三方模块都做得并不是很好)。

  1. 变量、函数和属性应该使用小写字母来拼写,如果有多个单词就使用下划线进行连接。
  2. 类中受保护的实例属性,应该以一个下划线开头。
  3. 类中私有的实例属性,应该以两个下划线开头。
  4. 类和异常的命名,应该每个单词首字母大写。
  5. 模块级别的常量,应该采用全大写字母,如果有多个单词就用下划线进行连接。
  6. 类的实例方法,应该把第一个参数命名为self以表示对象自身。
  7. 类的类方法,应该把第一个参数命名为cls以表示该类自身。

表达式和语句

在Python之禅(可以使用import this查看)中有这么一句名言:“There should be one-- and preferably only one --obvious way to do it.”,翻译成中文是“做一件事应该有而且最好只有一种确切的做法”,这句话传达的思想在PEP 8中也是无处不在的。

  1. 采用内联形式的否定词,而不要把否定词放在整个表达式的前面。例如if a is not b就比if not a is b更容易让人理解。
  2. 不要用检查长度的方式来判断字符串、列表等是否为None或者没有元素,应该用if not x这样的写法来检查它。
  3. 就算if分支、for循环、except异常捕获等中只有一行代码,也不要将代码和ifforexcept等写在一起,分开写才会让代码更清晰。
  4. import语句总是放在文件开头的地方。
  5. 引入模块的时候,from math import sqrtimport math更好。
  6. 如果有多个import语句,应该将其分为三部分,从上到下分别是Python标准模块、第三方模块和自定义模块,每个部分内部应该按照模块名称的字母表顺序来排列。

标签:指南,缩进,Python,代码,PEP,风格,模块,应该
From: https://www.cnblogs.com/wenyuan519/p/18207780

相关文章

  • RestFul API风格(规范)
     在现代web开发中,API(应用程序编程接口)扮演着至关重要的角色。它们使得不同的应用程序能够彼此通信,共享数据和功能。在众多API设计风格中,RESTful风格因其简洁性和高效性而备受推崇。本文将带你深入了解RESTful风格,探索其基本原则和最佳实践。 1.什么是RESTful风......
  • 写给-Python-开发者的-JavaScript-实用指南-全-
    写给Python开发者的JavaScript实用指南(全)原文:zh.annas-archive.org/md5/3cb5d18379244d57e9ec1c0b43934446译者:飞龙协议:CCBY-NC-SA4.0前言在学习Python时,您通过学习Python的基础知识、其优雅和编程原则,迈出了软件工程职业生涯的第一步。在您职业生涯的下一个阶段......
  • 架构风格
                    ......
  • KPI vs OKR:区别与联系的终极指南
    在不提及KPI和OKR的情况下,很难谈论绩效管理。但是这些缩写词代表什么呢?它们如何使您的组织受益? 关键绩效指标(KPI)KPI是一个可衡量的值,它指示组织在员工绩效,流程,产品,项目和其他计划等特定领域的表现。简而言之,它是对公司绩效的成功,状态和标准的量化度量。目标与关键成果(OKR)战略......
  • Kubernetes 数据存储:从理论到实践的全面指南
    本文深入解析Kubernetes(K8S)数据存储机制,探讨其架构、管理策略及最佳实践。文章详细介绍了K8S数据存储的基础、架构组成、存储卷管理技巧,并通过具体案例阐述如何高效、安全地管理数据存储,同时展望了未来技术趋势。关注【TechLeadCloud】,分享互联网架构、云服务技术的全......
  • PySpark-大数据分析实用指南-全-
    PySpark大数据分析实用指南(全)原文:zh.annas-archive.org/md5/62C4D847CB664AD1379DE037B94D0AE5译者:飞龙协议:CCBY-NC-SA4.0前言ApacheSpark是一个开源的并行处理框架,已经存在了相当长的时间。ApacheSpark的许多用途之一是在集群计算机上进行数据分析应用程序。本书......
  • 云渲染的概念与选择指南
    许多人在初次接触云端渲染时,可能会遇到各种疑问,比如云渲染的定义,以及如何选择合适的云渲染平台。为了帮助大家更好地理解这些内容,本文整理了有关云渲染的相关信息,希望能解答大家的疑惑。一、云渲染的概念云渲染是指将渲染任务提交到云端计算机,由云计算机代为完成渲染任务。通俗......
  • Python-无服务器微服务构建指南-全-
    Python无服务器微服务构建指南(全)原文:zh.annas-archive.org/md5/3c97e70c885487f68835a4d0838eee09译者:飞龙协议:CCBY-NC-SA4.0前言这本书将让您对微服务和无服务器计算有很好的理解,以及它们与现有架构相比的优缺点。您将对部署完整的无服务器堆栈的威力有所认识,不仅在节......
  • Ansible2-安全自动化指南-全-
    Ansible2安全自动化指南(全)原文:zh.annas-archive.org/md5/CFD4FC07D470F8B8541AAD40C25E807E译者:飞龙协议:CCBY-NC-SA4.0前言IT正在经历一次巨大的范式转变。从以正常运行时间作为IT成功的衡量标准的时代,我们正在转向不可变基础设施的理念,根据需求,我们可以自动地随时启......
  • Django框架指南
    Django框架指南入门安装Django系统安装python后,使用pip安装Djangopipinstalldjango创建一个Django项目在命令行中,使用以下命令创建一个新的Django项目:django-adminstartprojectmyproject这将创建一个名为myproject的文件夹,其中包含了一个Django项目的基本结构。创建......