effective python -- 遵循PEP8规范

以前翻译过<effective python>的几章, 后来发现已经有人翻译过了, 就停了
想想还是放上来吧


第二条: 遵循PEP8规范

Python Enhancement Proposal #8, 简称PEP8, 是Python的代码规范. 只要符合语法, 你可以用任何你喜欢的格式来个写代码. 但是符合代码规范的代码, 会更受欢迎,更容易让人读懂. 甚至这些代码只是你一个人用, 符合规范也会让你以后修改重构代码的时候变得容易一点
PEP 8 会让你的代码变得清晰简单. 它还在随着Python的演化持续更新. 通读一下整个在线文档是非常有价值的事情 http://www.python.org/dev/peps/pep-0008/
下面几点是你必须要遵循的:

空白(Whitespace)

Python中, 空白是语法规范. Python程序员特别在意代码中的空白, 从而使代码更清晰明了

  • 缩进用空格(space), 而不是tab
  • 使用4个空格作为每一层的语法缩进
  • 每一行不得超过79个字符

译者: 这一条还是很有必要的, 特别是多团队合作开发, 方便使用不同尺寸的屏幕来阅读代码

  • 一行写不下, 需要第二行的时候, 在原有语法缩进的基础上, 在增加4个空格(4 space)
  • 在文件中, function和class 需空开2行
  • 在class中, method需空开1行
  • 在列表索引, 方法调用, 关键字前后, 不要有空格
  • 参数赋值前后有 一个且只有一个空格

命名

PEP 8 建议要统一命名规范. 这样使得阅读代码时能清晰的区分类型

  • 方法(function), 变量(variables), 属性(attributes)应该是小写加下划线, 例如: lowercase_underscore
  • 私有属性应该以__开头, 并小写, 例如: __double_leading_underscore
  • 类(class)和异常(exception) 应该首字母大写, 例如 CapitalizedWord
  • 模块内的常亮应该是大写加下划线, 例如 *ALL_CAPS
  • 实例方法使用self作为第一个参数名
  • 类方法使用cls作为第一个参数名

表达式和声明

Python之禅(Zen of Python)中说过:"应该 有且最好只有一种方式去实现它". PEP 8 尝试使用这个理念来指导表达式和声明

  • 使用内联否定(if a is not b)来代替否定表达式(if not a is b)
  • 不要用于len来检查列表或字符串的空值(if len(somelist) == 0), 使用 if not somelist. 同时假定,空值隐式的为False
  • 接上, 非空的字符串或者列表字典隐式为True
  • 避免使用单行的if, for, while, except 等复合声明. 切分为多行, 更清晰易读
  • 总是将import置于文件头部
  • 总是使用绝对引用, 而不是相对路径引用. 例如, 引用 foo模块的bar, 你应该from foo import bar, 而不是import foo
  • 如果必须相对引用, 使用明确的语法from . import foo
  • import之间有必须遵循如下排序: 标准类库模块, 第三方模块, 你自己的模块. 每个import章节应该是alpha排序(译者: 也就是按照a,b,c,d排序)

Pylint (http://www.pylint.org/) 是比较热门的Python静态代码检查工具. Pylint提供了PEP 8 的代码规范检查,以及一些常见Python错误的检查

要记住的事

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