📜  Python – 约定和 PEP8

📅  最后修改于: 2022-05-13 01:55:50.167000             🧑  作者: Mango

Python – 约定和 PEP8

惯例是指在社区内做事以确保秩序的某种方式。同样,编码约定也是一组指导方针,但对于推荐编程风格、实践和方法的编程语言而言。这包括命名约定、缩进、注释、语句、编程实践等的规则。

遵循这些规则集可确保代码的可读性和易于维护。由于代码并不总是由开发人员维护,因此下一个人必须准确理解您的代码,因为“代码的阅读频率远高于编写频率”。

PEP-8

PEP-8 是Python Enhancement Protocol 8 的首字母缩写词,它是为Python编程语言发布的一组指南。 PEP-8 指南可能看起来很迂腐,但遵循它们可以改进您的代码,尤其是在共享代码时,无论是您的潜在雇主、开源贡献还是在小组项目期间。编写清晰易读的代码也是专业的标志,表明您知道如何构建代码。

让我们看看为什么约定在使用代码示例进行编码时很重要:

违反 PEP-8

L = [1, 2, 3, 4, 2, 4, 1, 2]
from collections import defaultdict
# Helper Function
def ltd(l):
    """Convert list to DefaultDict"""
                d = defaultdict(int)
                for i in l:
                         d[i] += 1
                return d
print(ltd(L))
输出:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})

上面是一个违反 PEP-8 最佳实践的代码,简单地说,这里的代码很难阅读。很少有问题,导入模块语句不在文件顶部,空格和缩进不一致,缺少换行符使得函数结束和下一行代码开始时难以理解。即使没有任何 PEP-8 规则的知识,您也可能会说这不是最易读的代码块。让我们在使用 PEP-8 规则重写此代码后查看此代码。

遵循 PEP-8

# Import needed package
from collections import defaultdict
  
# Define our data
list_data = [1, 2, 3, 4, 2, 4, 1, 2]
  
  
# Helper Function
def list_to_dict(input_list):
    """Convert list to DefaultDict"""
    d = defaultdict(int)
    for i in input_list:
        d[i] += 1
    return d
  
  
# Output
print(ltd(list_data))
输出:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})

正如您在上面所注意到的,同一段代码现在描述了空白、缩进和换行符的适当使用,这使代码看起来比以前更清晰。现在在注释的帮助下,代码比以前更容易理解了。

PEP-8 工具

如果您是Python新手,在编写程序几天或几周后,可能有点难以记住某段代码的作用。如果您遵循 PEP 8,则可以确保您已经很好地命名了变量并添加了足够的空格,以便更容易在代码中遵循逻辑步骤。您还可以很好地注释您的代码。所有这一切将意味着您的代码更具可读性和更易于理解。作为初学者,遵循 PEP 8 的规则可能很困难,但是您可以使用各种工具来确保您的代码遵循规则,例如:

  • IDE之类的PyCharm会在您编写错误的代码行时立即标记违规。

  • 使用pycodestyle包,它可以一次检查多个文件中的代码,并输出违规描述以及您需要去哪里解决问题的信息。
    第 1 步:使用 pip install 安装pycodestyle ,在终端中键入以下命令。
    pip install pycodestyle

    第 2 步:使用如下所示的命令检查带有 pycodestyle 的Python文件。( pycodestyle **filename**.py )

    输出: