(2) 遵循PEP 8风格指南

Python增强建议#8,也称为PEP 8,是关于如何格式化Python代码的样式指南。你可以使用任何你想要的方式编写Python代码,只要它有有效的语法。但是,使用一致的格式化代码更易于阅读。在更大的社区中,与其他Python程序员共享一种共同的风格可以促进协作项目。但是,即使您是惟一阅读您的代码的人,遵循样式指南也会使您以后更改代码变得更容易,并可以帮助您避免许多常见错误。

PEP 8提供了关于如何编写清晰的Python代码的大量细节。随着Python语言的发展,它将继续得到更新。值得在线阅读整个指南(https://www.python.org/dev/pep/pep-0008/)。这里有一些规则,你一定要遵守。

Whitespace(空格)

在Python中,空格在语法上很重要。Python程序员对空格对代码清晰度的影响特别敏感。遵循以下与空格相关的指导原则:

  • 使用空格而不是制表符进行缩进。
  • 为每一级的重要语法缩进使用四个空格。
  • 行长度不超过79个字符。
  • 将长表达式延续到其他行上时,应在其正常缩进级别上使用四个额外的空格进行缩进。
  • 在一个文件中,函数和类之间应该用两行空白隔开。
  • 在类中,方法之间应该用一行空白隔开
  • 在字典中,每个键和冒号之间不加空格,如果在同一行中,则在对应的值前加一个空格。
  • 在一个变量赋值中,在=操作符之前和之后都加上一个空格。
  • 对于类型注释,确保变量名和冒号之间没有分离,并在类型信息前使用空格。

Naming(命名)

PEP 8为语言中的不同部分提供了独特的命名风格。这些约定使得在读取代码时很容易区分与每个名称对应的类型。遵循以下有关命名的指导方针:

  • 函数、变量和属性应该采用小写的lowercase_underscore格式
  • 受保护的实例属性应该采用_leading_underscore格式
  • 私有实例属性应该采用双重下划线格式 __double_leading_underscore
  • 类(包括例外)应该是大写的。CapitalizedWord
  • 模块级常量应该采用ALL_CAPS格式 MYSQL_NAME
  • 类中的实例方法应该使用self(引用对象)作为第一个参数的名称。
  • 类方法应该使用引用类的cls作为第一个参数的名称。

Expressions and Statements(表达式和语句)

The Zen of Python states: “There should be one—and preferably only
one—obvious way to do it.”

PEP 8试图将这种风格编入它的表达式和语句指南:

  • 用内联否定(if a is not b)来代替肯定表达式的否定(if not a is b)
  • 不要通过将长度与0进行比较来检查空容器或序列(比如[]或")(if len(somelist) == 0)。使用if not somelist 并假设空值将隐式地计算为False
  • 对于非空容器或序列(如[1]或'hi')也是如此。对于非空值,if somelist语句隐式地为True
  • 避免单行 if语句、for和while循环以及except复合语句。为了清晰起见,将它们分散在多个行上。
  • 如果你不能把一个表达式写在一行上,用圆括号和缩进把它包围起来,这样更容易阅读
  • 宁可使用圆括号括住多行表达式,也不要使用\ 行延续字符

Imports (导入)

PEP8 给出了如何导入模块和如何在代码中使用的一些指南:

  • 始终将import语句(from x import y)放在文件的顶部。
  • 在导入模块时,总是使用绝对名称,而不是相对于当前模块自己的路径的名称。例如,要从bar包中导入foo模块,应该使用from bar import foo,而不仅仅是import foo
  • 如果必须执行相对导入,请使用显式语法from . import foo
  • 导入部分应该按照以下顺序:标准库模块第三方模块您自己的模块。每个小节都应该有按字母顺序排列的导入。

NOTE:可以使用Pylint 进行静态的语法检查

值得注意的

  • 在编写Python代码时,请始终遵循Python增强建议#8 (PEP 8)样式指南
  • 与更大的Python社区共享相同风格的代码有助于与其他社区的协作
  • 使用一致的样式使您以后更容易修改自己的代码
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343