当前位置: 首页 > 科技观察

为什么Python代码应该漂亮清晰

时间:2023-03-14 22:43:47 科技观察

欢迎来到“Pythonukkah”系列文章,本系列将讨论《Python 之禅》。我们先来看《Python 之禅》中的前两个原则:美观、清晰。早在1999年,Python的贡献者之一TimPeters就提出了《Python 之禅》,直到二十年后的今天,《Python 之禅》中的19条原则仍然对整个社区产生着深远的影响。为此,就像光的庆祝活动光明节一样,我们这次有“Pythonukkah”。首先,我们将讨论《Python 之禅》中的前两个原则:美丽和清晰。“HanukkahistheFestivalofLights,Insteadofonedayofpresents,wegeteightcrazynights.”——AdamSandler,HanukkahSongBeautifulThanUgly著名的《计算机程序的构造和解释Structure and Interpretation of Computer Programs》中有这么一句台词:ThecodeisWrittenforpeopleto阅读,足以使机器运行。程序必须是为了人们阅读而编写的,并且只是偶然地供机器执行。机器不关心代码的美感,但人类关心。阅读优美的代码是人的一种享受,这就需要贯穿代码的风格始终如一。使用Black、flake8、Pylint等工具可以有效地接近这个目标。但事实上,只有人类才知道什么是真正的美。因此,代码审查和协作开发是唯一的方法。同时,在开发过程中听取他人的意见也是必不可少的。最后,个人的主动性也很重要,否则所有的工具和流程都会变得毫无意义。只有意识到美的重要性,你才能主动写出美的代码。这也是为什么美在众多原则中排在首位的原因,也让“美”成为了Python社区的价值观。如果有人问,“我们真的关心美吗?”社区会在代码中回答是。清晰胜于晦涩人类庆祝光明而害怕黑暗,因为光明能让我们看到难以看清的事物。同样,明确地编写代码确实能让我们理解许多抽象概念,尽管我们有时会不自觉地编写出模棱两可的代码。“为什么要在类方法中明确指定self作为第一个参数?”这个问题已经是老生常谈了,但是网上流传已久的很多答案都是不准确的。在编写元类时,显式指定self参数是没有意义的。如果你还没有写过元类,希望你可以尝试一下,这是很多Python程序员的必修课。显式指定self参数的原因并不是Python的设计者不想将这样的元类视为“默认”元类,而是因为第一个参数必须是显式的。即使Python确实允许非显式情况(例如上下文变量),我们仍然应该问:有必要吗?不显式传递参数会不会有问题?有时,由于各种原因,这可能会出现问题。简而言之,一旦你在编写代码时能够优先考虑清晰性,至少意味着你可以对有歧义的地方提出问题并对结果进行有效的估计。