跳转到主要内容

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的方式。

文章来源于网络。发布者:联合网,转转请注明出处:https://www.anesthesia.org.cn/post/126.html

赞 (13)
联合网的头像联合网
上一篇 2017年4月17日 下午5:21
下一篇 2017年4月17日 下午10:54

相关推荐

  • 增资51%触发30%红线:中国五矿130.51亿要约华锡有色,还留了”就高”调价条款

    130.51亿元要约,实控人要从广西国资委换成中国五矿。 9月18日,华锡有色(600301.SH)间接控股股东广西关键金属产业发展集团有限公司及其股东广西北部湾国际港务集团有限公司、广西关键金属专项股权投资基金合伙企业(有限合伙),与中国五矿集团有限公司共同签署《关于广西关键金属产业发展集团有限公司合作框架协议》[web_4439相关]。中国五矿拟以现金或现金与非现金资产组合的方式对广西关键金属集团进行增资,取得其51%股权,并在交易后实际控制广西关键金属集团[web_4439相关]。投资参考网记者把要约的两个关键数相乘:275,335,681股乘以47.40元,是13,050,911,239.40元[web_4439相关]。 130.51亿元,全部现金支付[web_4439相关]。 47.40元与130.51亿元 要约是法定义务触发的。公告显示,本次交易完成后,中国五矿通过广西关键金属集团间接持有华锡有色的权益将超过公司已发行股份的30%,从而触发全面要约收购义务;中国五矿拟以47.40元/股向除公司控股股东华锡集团外的其他所有持有华锡有色A股的股东发出全面要约,拟收购275,335,681股无限售流通股、约占总股本的43.53%。根据《证券法》和《上市公司收购管理办法》,本次要约系为履行法定要约收购义务而发出,不以终止华锡有色上市地位为目的。 价格怎么定的,公告给了算法。据披…

    2026年9月20日
    7700
  • 4连板!大亚圣象澄清PCB概念:该产品不构成PCB组成部分,木地板收入半年降32.05%

    四个涨停,公司自己说:那块板垫在下面,压根不进PCB。 9月22日晚间,大亚圣象家居股份有限公司(下称”大亚圣象”,000910.SZ)发布股票交易异常波动公告,针对市场关注的PCB概念作出澄清。投资参考网记者把三个收盘价排成一列:9月18日5.69元、9月21日6.26元、9月23日7.58元。5.69元除以1.1001,涨停前那个交易日的收盘价约5.17元;7.58元对上5.17元,四个交易日累计涨了46.55%。 到9月23日早盘,这只票已经是四连板。 5.69元与7.58元 异动的认定有明确依据。公告显示,公司股票连续两个交易日(2026年9月21日、9月22日)收盘价格涨幅偏离值累计超过20%,根据《深圳证券交易所交易规则》的有关规定,属于股票交易异常波动的情形。 澄清的话说得很直白。公司表示,目前主要业务为地板、人造板和铝板带产品的研发、生产与销售;公司人造板产品中的超薄PCB纤维板不属于电子元器件,不构成PCB的组成部分,仅用于垫在待钻孔的覆铜板(PCB原材料)下方,起辅助和保护作用。 一句话,它是垫在下面的一块板。 公司还补了一句:该产品收入占公司营业收入比例较小,对公司的经营业绩影响较小,未来销售情况受多种因素影响存在不确定性。 核查结论一并列出。经公司董事会核查并询问控股股东及实际控制人:前期披露的信息不存在需要更正、补充之处;未发现近期…

    2026年9月23日
    7400
  • *ST数源拟被罚1690万元,2022年半年报虚增营收4.9亿元,时任董事长8年市场禁入

    立案近五个月后,杭州这家老牌国企上市公司的财务造假旧账有了结果。 9月9日晚间,数源科技股份有限公司(000909.SZ,证券简称”*ST数源”)公告,公司及相关当事人于当日收到中国证券监督管理委员会浙江监管局出具的《行政处罚事先告知书》(浙处罚字[2026]20号)。因2020年年报、2021年年报及2022年半年报存在虚假记载,浙江证监局拟对公司责令改正、给予警告并处以800万元罚款。 投资参考网记者注意到,与公司一同被罚的还有6名相关责任人,合计罚款890万元,公司及个人罚款合计1690万元。 罚单的人员构成 把处罚名单拆开看,层级清晰。 依据《证券法》第一百九十七条第二款,浙江证监局拟对时任董事长章国经给予警告并处以400万元罚款;对时任副总经理蒋力放给予警告并处以200万元罚款;对时任董事、总经理吴小刚给予警告并处以100万元罚款;对时任财务总监李兴哲给予警告并处以80万元罚款;对时任董事会秘书高晓娟给予警告并处以60万元罚款;对数源贸易时任执行董事、总经理王伟勇给予警告并处以50万元罚款。 更严厉的措施落在章国经个人身上。浙江证监局认为,章国经作为时任董事长,组织安排相关人员实施案涉事项,行为恶劣,违法情节较为严重,拟决定对其采取8年证券市场禁入措施。 三项造假手法 告知书认定的违法事实由三条线索交织而成。 其一是虚假视音频业务。2020年,数源…

    2026年9月10日
    7400
  • 海底捞老板娘折价套现27.5亿港元,张勇5月刚增持,股价盘中跌12.13%创2022年3月以来新低

    短短一天,海底捞的股价跌去了近一成。 9月9日,海底捞国际控股有限公司(6862.HK,证券简称”海底捞”)盘中大幅跳水,最低触及10港元,最大跌幅达12.13%,创下2022年3月以来的盘中新低;截至收盘报10.34港元/股,下跌9.14%,全天成交额放大至37.81亿港元,最新市值576.35亿港元。 投资参考网记者注意到,引发这场波动的,是盘前一笔规模罕见的大宗交易。当日开盘前市场录得16笔大额成交,合计约2.59亿股,成交价均为每股10.62港元,总金额约27.5亿港元,较前一交易日11.38港元的收盘价折让约6.68%。 谁在卖 答案在当晚的公告里。 9月9日晚间,海底捞发布自愿性公告称,控股股东集团成员SP NP Ltd.于2026年9月8日通过大宗交易方式,以每股10.62港元的价格出售公司259,000,000股股份,占截至公告日期已发行股份总数约4.65%。 股权链条也随之披露。就董事所知,SP NP Ltd.由UBS Trustees(B.V.I.)Limited以Rose Trust受托人身份,透过UBS Nominees Limited全资拥有;Rose Trust为舒萍以财产授予人及保护人的身份,为其本身、张勇及其家族的利益成立的全权信托。据摩根士丹利研报披露,SP NP的实际控制人正是海底捞创始人、董事长兼CEO张勇的妻子舒萍。 …

    2026年9月10日
    9700
  • 雅创电子3.2亿元并购永佳实业 完善全球电子元器件分销渠道布局

    9月24日盘后,雅创电子(301099.SZ)发布公告,公司全资子公司香港台信拟以现金方式收购自然人龙启宇持有的永佳实业(国际)有限公司70%股权,交易对价合计4760万美元(约合人民币3.20亿元)。本次交易是公司“分销+自研”双轮驱动战略下的重要布局,通过控股优质分销标的进一步完善全球电子元器件市场布局。 根据公告,本次交易不构成关联交易,亦不构成《上市公司重大资产重组管理办法》规定的重大资产重组,属于董事会决策权限范围,无需提交股东大会审议。交易定价以上海立信资产评估出具的评估报告为依据:以2026年3月31日为基准日,永佳实业股东全部权益收益法评估值为7000万美元,较账面净资产增值4684.56万美元,增值率202.32%;经双方协商,70%股权最终交易价确定为4760万美元,略低于评估值对应的4900万美元。 交易设置了三年业绩承诺与补偿机制。转让方龙启宇承诺,永佳实业2026年、2027年、2028年每年度经审计的实际净利润(扣除非经常性损益前后归属于母公司所有者净利润孰低者)不低于850万美元,三年累计不低于2550万美元。若业绩未达承诺,龙启宇将以现金方式进行补偿;同时协议设置股权回购、超额业绩奖励等配套条款。人员绑定层面,转让方须促使标的公司核心员工签订竞业限制协议与服务期协议,承诺自股权交割完成日起,核心员工至少任职至2029年12月31日。 标的公司永佳实业…

    2026年9月25日
    8100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信