PEP8 Python 编码规范整理

决定开始Python之路了,利用业余时间,争取更深入学习Python。编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的。所以今天根据PEP8整理了一份,以后都照此编码了,还会持续更新。

一 代码编排

1 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。

2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。

3 类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。

二 文档编排

1 模块内容的顺序:模块说明和docstring—import—globals&constants—其他定义。其中import部分,又按标准、三方和自己编写顺序依次排放,之间空一行。

2 不要在一句import中多个库,比如import os, sys不推荐。

3 如果采用from XX import XX引用库,可以省略‘module.’,都是可能出现命名冲突,这时就要采用import XX。

三 空格的使用

总体原则,避免不必要的空格。

1 各种右括号前不要加空格。

2 逗号、冒号、分号前不要加空格。3 函数的左括号前不要加空格。如Func(1)。4 序列的左括号前不要加空格。如list[2]。5 操作符左右各加一个空格,不要为了对齐增加空格。6 函数默认参数使用的赋值符左右省略空格。7 不要将多句语句写在同一行,尽管使用‘;’允许。8 if/for/while语句中,即使执行语句只有一句,也必须另起一行。

四 注释

总体原则,错误的注释不如没有注释。所以当一段代码发生变化时,第一件事就是要修改注释!注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。如果是短语,可以省略结束符。

1 块注释,在一段代码前增加的注释。在‘#’后加一空格。段落之间以只有‘#’的行间隔。比如:

# Description : Module config. # # Input : None # # Output : None

2 行注释,在一句代码后加注释。比如:x = x + 1 # Increment x但是这种方式尽量少使用。3 避免无谓的注释。

五 文档描述

1 为所有的共有模块、函数、类、方法写docstrings;非共有的没有必要,但是可以写注释(在def的下一行)。2 如果docstring要换行,参考如下例子,详见PEP 257

“””Return a foobang Optional plotz says to frobnicate the bizbaz first. “””

六 命名规范

总体原则,新编代码必须按下面命名风格进行,现有库的编码尽量保持风格。1 尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。2 模块命名尽量短小,使用全部小写的方式,可以使用下划线。3 包命名尽量短小,使用全部小写的方式,不可以使用下划线。4 类的命名使用CapWords的方式,模块内部使用的类采用_CapWords的方式。5 异常命名使用CapWords+Error后缀的方式。6 全局变量尽量只在模块内有效,类似C语言中的static。实现方法有两种,一是__all__机制;二是前缀一个下划线。7 函数命名使用全部小写的方式,可以使用下划线。8 常量命名使用全部大写的方式,可以使用下划线。9 类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。9 类的属性有3种作用域public、non-public和subclass API,可以理解成C++中的public、private、protected,non-public属性前,前缀一条下划线。11 类的属性若与关键字名字冲突,后缀一下划线,尽量不要使用缩略等其他方式。12 为避免与子类属性命名冲突,在类的一些属性前,前缀两条下划线。比如:类Foo中声明__a,访问时,只能通过Foo._Foo__a,避免歧义。如果子类也叫Foo,那就无能为力了。13 类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。

七 编码建议

1 编码中考虑到其他python实现的效率等问题,比如运算符‘+’在CPython(Python)中效率很高,都是Jython中却非常低,所以应该采用.join()的方式。2 尽可能使用‘is’‘is not’取代‘==’,比如if x is not None 要优于if x。3 使用基于类的异常,每个模块或包都有自己的异常类,此异常类继承自Exception。4 异常中不要使用裸露的except,except后跟具体的exceptions。5 异常中try的代码尽可能少。比如:

try: value = collection[key] except KeyError: return key_not_found(key) else: return handle_value(value)

要优于

try: # Too broad! return handle_value(collection[key]) except KeyError: # Will also catch KeyError raised by handle_value() return key_not_found(key)

6 使用startswith() and endswith()代替切片进行序列前缀或后缀的检查。比如

Yes: if foo.startswith(‘bar’):优于No: if foo[:3] == ‘bar’:7 使用isinstance()比较对象的类型。比如Yes: if isinstance(obj, int): 优于No: if type(obj) is type(1):8 判断序列空或不空,有如下规则Yes: if not seq:if seq:优于No: if len(seq)if not len(seq)9 字符串不要以空格收尾。10 二进制数据判断使用 if boolvalue的方式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:AI编辑专员,转载请注明出处:https://ershe.chuangxiangniao.com/html/126.html

(13)
上一篇 2017年4月17日 17:21:32
下一篇 2017年4月17日 22:54:20

相关推荐

  • 杭州劳力士回收一般多少钱?哪里有收的呢

    对劳力士不了解的人对这个腕表品牌的第一印象可能会觉得很“土”,毕竟大金表的形象早已是深入人心,不过慢慢的了解了这个品牌之后,金奢易网二手表回收小编相信绝大多数人会很容易就被它给吸引了,你会发现劳力士的“土”其实是一种时尚,同时也是一种经典,其保值性更是没得说的,那么杭州劳力士回收一般多少钱?哪里有收的呢? 劳力士是奢华型腕表品牌的典范,它的价格并不是那么容易…

  • 罗意威包包回收几折, Hammock 颜色怎么选?

    罗意威包包回收几折,从对国内专柜目前的颜色,总共有黑色,米色,棕色,酒红色,蓝色Ligty,玫瑰粉等,从正常的穿衣原则,一般明亮的色彩在春季和夏季选择。例如,米色,棕色,蓝色Ligty,玫瑰粉,这四种颜色都比较好看;秋冬季一般是深色,如黑色,酒红色等。当然,最终的颜色仍取决于个人情况,但是编辑还是会推荐黑色的原因很简单:所有的季节,不穿衣服!相关推荐:葆蝶家…

    19小时前
    000
  • 黄金蹒跚中向前 加息艰难美元前景黯淡

    上周五盘中大多数时候黄金价格均呈现出上涨走势,原因是来自中国和美国的经济数据均令人失望,从而提高了黄金作为一种安全避风港资产的吸引力。 美联储加息 “9月份的‘黄金季节’正在迅速逼近。目前,发达国家的夏季假日季节正在走向终点,黄金市场的关注焦点是珠宝生产商在年底的节日季节中的购买活动。 印度的黄金需求正在大幅增长,原因是季风雨提高了粮食产量,从而使得印度消费…

  • 朗格手表在哪卖,朗格手表多少钱回收?

    手表的外观一般由k金和k铂制成,表带由高级动物皮革制成。虽然k金的主要原料是黄金,但手上的汗水是酸性的,会被空气腐蚀。随着时间的推移,它远不如新时代美丽。这需要清洗和抛光,以保持这款著名手表的最新状态。还应注意避免碰撞。海上汗渍造成的腐蚀会导致皮带过早硬化和破裂,这需要维护。朗格手表在哪卖,朗格手表多少钱回收?手表回收店的价格肯定是比专柜价格便宜不少的,手表…

  • 黄金价格走势预测:明年料加息两次 金价跌至900!

    金奢易网讯 自11月9日以来,黄金已直线下跌10.5%。但是,黄金作为一种储备货币、安全资产以及对冲通胀的工具,真的就那么容易被打倒了?ETF交易网站专栏作家Dave Nadig表示,黄金的价值实际上是被“虚构”的,当每个人都想拥有它时,自然就值钱了,但当所有人都抛弃一项资产时,它的价值自然会崩溃。 黄金 作为对冲通胀的工具 黄金的表现又如何呢? 虽然大多人…

  • 用了六个月的天梭手表能回收多少钱

    在世界上知名的手表有很多,而瑞士手表就占据了一大半还要有多。知名的瑞士手表价格往往都是比较昂贵的,对于大多数人来说都是较难负担得起。但是天梭手表就不同了,天梭手表的售价是比较亲民的,而且它也有着纯正的瑞士制表工艺。所以这样的一款手表就成了大家在预算不充足时的最佳选择。用了六个月的天梭多少钱回收? 六个月的使用时间并不漫长,如果手表保养得好,那这款手表的成色往…

  • 爱马仕插销包怎么样?包包回收可找金奢易网

    如果你不太会穿衣搭配,可以多看看时尚达人的街拍,看看他们的搭配秘诀。如果你不知道该买哪款包包,也可以看看时尚达人或者是明星,现在明星同款是很流行的,当然了人民币也得备好,明星们的大牌包包有很多很多,咱们也不可能每一款都买回家,还是需要看哪款是自己喜欢的,别人背着好看的,也许并不适合你,还得要看实物,再想想自己平时的搭配风格,合适哪种款式的包包……想要变成时尚…

  • 二手手表回收价格有哪些坑

      相信和二手名表回收公司打过交道的亲们总会莫名其妙地遇到过这样或者那样的问题,比如最典型的一个,明明见面之前回收公司给报的回收价格很高,但最后的成交价格却很是差强人意。郑州二手手表回收过程中都会有遇到哪些个坑,人们经常说的“水”很深,到底都有哪些水?今天金奢易网小编从郑州二手手表回收时如何鉴定评估、郑州二手手表回收价格、郑州二手手表回收流程这几方面讲解下,…

    3天前
    000
  • 旧的劳力士值钱吗 名表回收市场报价超乎你想象

    随着手表的文化在现在越来越流行,也已经被大家列入为奢侈品类目之一。说起名牌手表,相信没有哪一个人会不知道劳力士,劳力士手表在市场上可是十分受欢迎的,不少表款在市场上炒的价格都是一涨在涨。那么旧的劳力士值钱吗?众所周知,手表是可以回收的,但仅限于名牌手表,普通手表时无法回收的。下面我们就一起来名表回收市场一起了解一下。 上图为劳力士格林尼治型II系列m1267…

  • 黄金回收购买黄金项链时应该注意些什么?

      女性消费者购买珠宝是一件非常频繁的事情。如果有哪个现代女性朋友没有买过黄金首饰,那无疑是一种遗憾。现在很多年轻女性朋友都有各种各样的首饰,包括项链。在各种项链中,比较流行的是金项链。那么买金项链要注意什么呢?以下金奢易网黄金回收公司小编就给大家讲讲:相关阅读:黄金首饰回收价格计算方法是什么?黄金去哪里回收?   一般来说,金项链分为松齿链、弦链、花色链、…

    14小时前
    000