首页 > 其他分享 >什么是PEP8?

什么是PEP8?

时间:2023-01-28 18:33:20浏览次数:34  
标签:注释 可读性 Python 什么 PEP 单词 PEP8 代码


在本文中,我们将解释PEP8及其在python中的使用。此外,我们将在编码时看到它的优势。

什么是PEP8?

PEP是Python Enterprise Proposal的缩写。用良好的逻辑编写代码是编程的一个关键方面,但许多其他重要元素也会影响代码的质量。开发人员的编码风格使代码更加可靠,每个开发人员都应该记住,Python 严格遵循字符串的顺序和格式。

良好的编码风格使代码更具可读性。为最终用户简化了代码

PEP 8 是一个文档,其中包含编写可读 Python 代码的各种准则。PEP 8 讨论了如何作为开发人员构建漂亮的代码。它由Guido van Rossum,Barry Warsaw和Nick Coghlan于2001年正式编写。PEP 的主要目标是提高代码的可读性和一致性。

PEP 8 已经发展成为大多数 Python 项目遵循的风格指南;它支持非常易读且具有视觉吸引力的代码样式。每个 Python 程序员都应该在某个时候阅读它;

以下是为您提供的一些要点。

凹痕

在Python中,与其他编程语言不同,缩进用于定义代码块。代码行的级别由缩进决定,缩进是 Python 编程语言的一个重要特征。通常,我们将 4 个空格用于缩进。

四空格规则并不总是必需的,对于延续行可以忽略。



def functionName(first_variable, second_variable, third_variable, fourth_variable): # giving 4 spaces for indentation print(first_variable)

使用文档字符串

在 Python 中,你可以同时使用单行和多行文档字符串。另一方面,单行注释适合一行;两种情况都使用三引号。这些用于定义特定程序或特定功能。



def tutorialspoint(): """It is an example for single line docstring""" """It is an example for multiline comment"""

行应换行,使其不超过 79 个字符

Python 标准库是保守的,要求行限制为 79 个字符。圆括号、方括号和大括号可用于换行。应优先使用它们,而不是反斜杠。



with open('/path/from/where/you/want/to/read/file') as fileOne, \ open('/path/where/you/want/the/file/to/be/written', 'w') as fileTwo: file_two.write(file_one.read())

命名约定

为了使程序不那么困难且更具可读性,应遵守一些命名标准。同时,Python的命名约定有点混乱,但这里有一些可以很容易地遵循。

根据总体原则,作为 API 的公共元素对用户可见的名称应遵循表示用法而不是实现的约定。

单个小写字母

e =2

单个大写字母

E = 2

小写

num = 5

带下划线的小写

input_number = 5

大写

NUM = 2

带下划线的大写字母

INPUT_NUMBER = 5

大写单词/驼峰大小写

输入数 = 10

注意

在 CapWords 中使用缩写时,请确保将缩写中的所有字母大写。因此,HTTPServerError 比 HttpServerError 更可取。

python中的命名约定

下表显示了 Python 中一些最常见的命名样式 -

类型

命名约定

例子

功能

它可以是小写单词,也可以是下划线分隔的单词。

演示功能, demo_function

变量

为了提高可读性,我们可以使用小写字母、单词或单独的单词。

n、数字、input_num


类名的第一个字母应大写或以驼峰大小写书写。下划线不应用于分隔单词。

演示类, 模型, 教程点

方法

为了提高可读性,我们可以使用小写字母、单词或单独的单词。

demo_method,方法名

不断

它可以是简短的、大写的字母、单词或单独的单词

DEMOCONSTANT、CONSTANT、CONSTANT DEMO_CONSTANT

模块

它是小写字母、单词或单独的单词

Module_name.py, module.py


它可以是小写字母、单词或单独的单词。下划线不应用作单独的单词。

包,演示包

空白行

通过使用空行可以提高 Python 代码的可读性。当多行代码组合在一起时,代码变得更加难以阅读。我们可以通过使用大量空白的垂直线来摆脱它,但读者可能需要滚动太多。要添加垂直空格,请按照以下步骤操作。

具有两行的顶级函数和类 - 在它们周围添加额外的垂直空间,使它们更具可读性。



class MyFirstClass: pass class MySecondClass: pass def main_function(): return None

中的单个空行 − 类中定义的函数彼此相关。



class MyFirstClass: def first_method(self): return None def second_method(self): return None

在函数中使用空行 - 有时我们需要创建一个复杂的函数,在 return 语句之前包含许多步骤。因此,我们可以在每个步骤之间插入一个空行。

评论

注释是任何编程语言的重要元素。这些是描述代码的最有效方法。当我们用适当的注释记录我们的代码时,任何人都可以理解它。但请记住以下几点。

  • 从大写字母开始,写下整个句子。
  • 如果代码发生更改,请更新注释。
  • 注释和文档字符串行长度限制为 72 个字符。

屏蔽评论

块注释是一小部分代码的绝佳解决方案。在编写多行代码以实现单个操作(如循环迭代)时,此类注释非常有用。它们帮助我们理解代码的目的。

  • 阻止注释应在同一级别缩进。
  • 每行以 # 和单个空格开头。
  • 使用单个 # 分隔每行。



# Assigning the value of name (Block Line comment) name = "TutorialsPoint"

内联注释

内联注释在代码中用于描述代码部分中的单个语句。我们可以很容易地理解为什么我们开发了那一行特定的代码。PEP 8 中指定了内联注释的以下限制。

  • 以 a 和单个空格开始您的评论。
  • 谨慎使用内联注释
  • 我们应该将内联注释与它们所引用的语句分开在同一行。


name = "TutorialsPoint" # Assigning the value of name (InLine comment)

结论

在本文中,我们了解了 Pep8 是什么以及如何使用各种方法编写高质量的代码。

标签:注释,可读性,Python,什么,PEP,单词,PEP8,代码
From: https://blog.51cto.com/10zhancom/6025080

相关文章

  • 为什么你应该使用NumPy数组而不是嵌套的Python列表?
    在本文中,我们将向您展示为什么使用NumPy数组而不是嵌套的Python列表,以及它们之间的异同。PythonNumPyLibraryNumPy是一个Python库,旨在有效地处理Python中的数组。它快......
  • 大公司为什么禁止SpringBoot项目使用Tomcat?
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校......
  • 什么是DPT中的Odd Cycle问题?它会有什么问题?该如何解决?
    什么是DPT中的OddCycle问题?它会有什么问题?该如何解决?本文选自知识星球中的ICC2教程,更多IC干货见星球,同时星球QQ群还有分享高达40多万字的个人数字后端设计笔记,欢迎加入,......
  • 什么是LRU(最近最少使用)算法?
    一、什么是LRU?LRU(LeastRecentlyUsed),最近最少使用。是一种【内存管理】算法。LRU算法基于一种假设:长期不被使用的数据,在未来被用到......
  • 什么是CPU密集型、IO密集型?
    CPU密集型(CPU-bound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPULoading100%,CPU要读/写I/O(硬盘/内存),I/O在很短......
  • 为什么我推荐接口调试一定要用Apipost?
    作为一名Java后端开发工程师,对Swagger、Postman、RAP这些工具再熟悉不过了,它们为我们的接口开发工作带来了很多的便捷,不过因为这些都是独立的框架,之间并不存在互通性,因此在......
  • 2023邯郸学校春季想学一个技术学什么好
    2023邯郸学校春季想学一个技术学什么好?正值春季万物复苏,年后是该学一个好点的技术了。但是学生和家长对于选择学校和选择专业历来是一件很闹心的难事,尤其是在成绩不理想的状......
  • 为什么大表会导致MySQL变慢
    虽然技术已经发展成熟,但仍有一些人认为MySQL仅适用于小型项目,或者它不能很好地处理大型表。一些初创公司在早期就采用了MySQL,如Facebook、Uber、Pinterest等,这些公司现在......
  • 人工智能的核心技术是什么?
    (本文阅读时间:5分钟)人工智能的核心技术是它的算法被广泛认可的「算法」专业定义是:算法是模型分析的一组可行的,确定的,有穷的规则。基于规则的人工智能上个世纪六七十年代出现......
  • 是什么让学习 Web 开发在未来几年变得有价值?
    什么是网页开发?Web开发是指在互联网上创建网站或Web应用程序。它涉及一系列任务,从开发网站的整体结构和设计到编写使网站栩栩如生的代码。Web开发可能是一个复杂的过程,......