您花了数小时学习 Python,甚至可能有几个成功的项目。但是,您像专业人士一样编写 Python 代码吗?让我们回顾一些重要的指导原则,以帮助您整理代码。

什么是 Python 式的 编写代码的方式?

在 Python 中,做某事通常有多种方法;当然,有些方法比其他方法更好。但您始终应该选择不仅语法正确而且符合编码最佳实践和语言使用方式的代码。

Python 的 编写代码 意味着遵循官方的 Style Guide for Python Code ,并在代码的简单性和可读性方面选择最有效的选项。

当然,通读所有样式指南可能会很无聊。因此,为了让您的生活更轻松,我想以一种更吸引人、更简洁的格式与您分享指南中的主要思想和最重要的规则。这并不意味着您不应该阅读指南,但本文至少可以让您的工作更轻松一些。

如何构建 Python 代码

缩进

每个缩进级别应使用四个空格。在 Python 中,首选的缩进方法是空格,而不是制表符。此外,Python 3 不允许混合使用空格和制表符进行缩进。(注意:“空格与制表符”在编程圈中是一场有争议的 圣战 。尽管官方 Python 风格指南更喜欢空格,但其他风格指南可能会指定制表符。无论如何,一致性是关键。)

当一行代码被拆分成多行时,管理缩进也有一些规则。续行应该垂直对齐换行元素(如参数列表中的项目),或者使用悬挂缩进。请参见下面的一些示例:

良好做法

# Vertical alignment
congrats = joining_four_strings_and_repeating_three_times('Happy', 
                                                          'New', 
                                                          'Year',
                                                          '!')
																													
																												
# Hanging indent
congrats = joining_four_strings_and_repeating_three_times(
    'Happy', 'New', 
    'Year','!')

不好的做法

# Bad practice since no arguments are allowed in the first line when using hanging indent.
congrats = joining_four_strings_and_repeating_three_times('Happy', 
    'New','Year','!')
print (congrats)

最大线长

在 Python 代码中,一行的长度应限制为最多 79 个字符。文档字符串和注释的限制更短,不应超过 72 个字符。这是 Python 标准库的要求。但是,如果某些团队强烈希望行长更长,他们可能会将最大长度增加到 99 个字符,同时将文档字符串和注释保持在 72 个字符以内。

(注意:行长不会影响代码的性能。这仅仅是为了可读性和清洁度。由于许多人有不同的偏好,官方风格指南也任意指定了这些特定的内容以保持一致性。)

换行符

通过将表达式括在括号中并使用 Python 的隐式行延续符(括号内),可以将长行拆分为多行。反斜杠也可用于拆分行,但仅限于无法应用隐式延续符的情况(例如,如果您编写了多个长 with 语句)。

对于公式,最佳做法是在二元运算符前换行,因为这通常会使代码更具可读性。但是,如果符合您当地的惯例,也可以在二元运算符后换行。

良好做法

# Line breaks before binary operators
GDP = (private_consumption 
       + gross_investment 
       + government_investment 
       + government_spending 
       + (exports - imports))

不好的做法

# Line breaks after binary operators
GDP = (private_consumption + 
       gross_investment + 
       government_investment + 
       government_spending + 
       (exports - imports))

空行

建议在顶层函数和类定义周围放置 两个空行 ,在方法定义周围 一个空行 。您还可以使用额外的空行来分隔相关函数组或指示函数内的逻辑部分。

导入

任何 Python 代码都应以导入必要的库和类开始。建议将不同库的导入放在不同的行上。但是,可以在一行中导入来自同一模块的多个类。

良好做法

# Importing different libraries in different lines
import numpy
import pandas

# Importing different classes from the same module
from sklearn.metrics import confusion_matrix, classification_report

不好的做法

# Importing different libraries in one line
import numpy, pandas

如何像专业人士一样注释 Python 代码

注释是良好编码习惯的核心。对 Python 代码进行全面记录并在代码更改时更新所有注释非常重要。

评论应该是完整的句子,最好用英文写成。

评论有三种类型:

  • 块注释 适用于其后的代码。这些注释通常由一个或多个段落组成。块注释的所有行都应以 # 和一个空格开头。最好用包含单个 # 的行分隔块注释内的段落。
  • 内联注释 是与语句在同一行上的注释。这种注释应谨慎使用,并且仅用于真正有用的解释。否则,您的代码将变得混乱。这些注释应与语句至少用两个空格隔开,并以 # 开头,后跟一个空格。
  • 文档字符串 (或 docstrings) 位于模块、函数、类和方法的开头。文档字符串由“ triple double 引号”包围。与通常的注释不同,文档字符串不是描述,而是命令 — 例如,“形成一个复数”或“返回一个字符串”。

Python 命名约定

Python 代码接受不同的命名风格,但对于某些对象,您应该遵循一些推荐的风格。

我们首先从 Python 命名风格开始。这些包括:

  • b (单个小写字母)
  • B (单个大写字母)
  • lowercase lowercase_with_underscores
  • UPPERCASE UPPERCASE_WITH_UNDERSCORES
  • CapitalizedWords Capitalized_Words_With_Underscores
  • mixedCase (也称为驼峰式命名法)

现在是时候了解在特定情况下和针对特定对象使用这些命名样式的指南了:

  • 使用 lowercase lowercase_with_underscores (如果有必要,可以提高可读性)作为函数名称和变量名称。函数名称应该传达其功能。
  • 不要使用单个小写字母“l”(el)、大写字母“I”(eye)或大写字母“O”作为变量名。在某些字体中,这些字符与“1”和“0”等数字难以区分。
  • 不要将变量命名为“x”或“y”。相反,请使用描述性名称(例如 fertility_rate_1990 , gdp_1990 )。
  • 尽量避免使用过长的名称,尤其是当名称的某些部分不会提高您对代码的理解时。例如, actor_names 使用 list_of_actor_names .
  • 常量应遵循命名约定来命名 UPPERCASE UPPERCASE_WITH_UNDERSCORES 变量一眼看上去就应该清楚是常量。

有时,遵循所有命名约定是不可行的,因为您现有的一些代码库遵循不同的约定,或者您遵守其他一些本地采用的约定。无论如何,请记住,项目内的一致性比遵循任何特定的样式指南更重要。

包起来

专业程序员避免编写复杂的代码,因为复杂性越高,错误就越多。您希望以最简单的方式编写代码,以确保您自己和其他程序员都能轻松理解。事实上,Python 的设计初衷是清晰易懂——这就是为什么遵循这些约定的优秀 Python 代码读起来几乎像英语一样!

现在,您已经熟悉了 Python 代码的基本样式指南,但还有更多内容需要讨论。通过我们的课程学习专业编写 Python 代码的其他最佳实践:Python 基础知识( Part 1 , Part 2 , Part 3 )和 Python 数据科学简介 .

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部