美文网首页Pentest
Python编写规范

Python编写规范

作者: cws | 来源:发表于2016-07-12 23:32 被阅读114次

一、代码编排

1.缩进:使用4个空格缩进
2.行长度:每行不要超过80个字符
3.空行:顶级定义之间空两行,如函数或类的定义,方法定义、类定义与第一个方法之间都应该空一行。
4.分号:行尾不要有分号,也不要用分号将两条命令放在一行,除非是:1.长的导入模块语句。2.注释里的URL.3.可以使用圆括号实现隐式行连接

二、文档编排

1.导入:模块注释->文档字符串->导入->模块全局变量->常量
        导入顺序:标准库导入->第三方库导入->应用程序指定库导入
2.import:不要在一行中import多个库,一行中只导入一个

三、空格

1.不要在逗号、分号、冒号前加空格,但应在他们后面加(除了在行尾)
2.二元操作符(赋值、比较、布尔)两边都加空格
3.当"="用于指示关键字参数或默认参数值是,不要再其两侧使用空格
4.","和"#"和"="不需要对齐,因为空格会成为维护的负担

四、注释

总体原则,错误的注释不如没有注释。
注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。如果是短语,可以省略结束符。
1.块注释:在一段代码前增加的注释。在"#"后加一空格。段落之间以只有"#"的行间隔。
2.行注释,在一句代码后加注释。进来少使用.
3.绝不要描述代码. 假设阅读代码的人比你更懂Python, 他只是不知道你的代码要做什么.

五、文档描述

1.为所有的共有模块、函数、类、方法写docstrings;非共有的没有必要,但是可以写注释(在def的下一行)。
2.如果docstring要换行,参考如下例子
class SampleClass(object):
    """Summary of class here.

    Longer class information....
    Longer class information....

    Attributes:
    likes_spam: A boolean indicating if we like SPAM or not.
    eggs: An integer count of the eggs we have laid.
    """

    def __init__(self):
        """Inits SampleClass with blah."""

六、命名规范

1.尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。
2.模块名尽量短小,应该用小写加下划线的方式(如lower_with_under.py).
3.包命名尽量短小,使用全部小写的方式,不可以使用下划线。
4.类名使用大写字母开头的单词(如CapWords, 即Pascal风格)
5.函数命名使用全部小写的方式,可以使用下划线。
6.变量也用小写加下划线的方式,即this_is_a_variable=1
7.常量命名使用全部大写的方式,可以使用下划线。
8.类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。
9.类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。
10.用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含).
11.用双下划线(__)开头的实例变量或方法表示类内私有.

七、Main:即使是一个打算被用作脚本的文件, 也应该是可导入的.

并且简单的导入不应该导致这个脚本的主功能(main functionality)被执行
代码应该在执行主程序前总是检查 if __name__ == '__main__'
    def main():
        ...

    if __name__ == '__main__':
        main()

八、字符串:

避免在循环中用+和+=来累加字符串,可以将每个子串加入列表,然后再循环结束后使用.join连接列表
    items = ['<table>']
    for last_name, first_name in employee_list:
        items.append('<tr><td>%s, %s</td></tr>' % (last_name, first_name))
    items.append('</table>')
    employee_table = ''.join(items)
同一文件中保持使用字符串引号的一致性
多行字符串使用三重"双"引号,不过通常使用括号隐式连接

九、其他

括号:宁缺毋滥的使用括号
类:若一个类不继承自其它类,就显式的从object继承,即使是嵌套类
语句:通常每个语句独占一行,try/except一定不放在一行
文件和sockets:在文件和sockets结束时,显式的关闭它,推荐with语句管理文件

相关文章

  • Python编写规范

    一、代码编排 二、文档编排 三、空格 四、注释 五、文档描述 六、命名规范 七、Main:即使是一个打算被用作脚本...

  • python编写规范

    1. No getters and setters. Use @property and @x.setter in...

  • python编写规范

    一、 说明 为了规范Python代码的书写,提高代码的可读性,使编码人员在代码上更好的协作,制定了本规范。 中...

  • Python编写规范

    一、编码:Python 3 源码文件以UTF-8编码,所有字符串都是 unicode 字符串 二、标识符:我们自己...

  • Python程序编写规范

    程序的编码风格是一个人编写程序时表现出来的特点、习惯逻辑思路等。我们在程序开发时要重视其编写规范,程序不仅应该能够...

  • 工具 | Python 篇 - 代码整洁之道 (2)

    写出 Pythonic 代码 谈到规范首先想到就是 Python 有名的 PEP8 代码规范文档,它定义了编写 P...

  • Python函数编写格式规范

    建议使用描述性名称来定义函数名。通过描述性名称,可以让我们很容易理解这个函数可以做什么。 函数名只使用小写字母与下...

  • pytest学习笔记

    使用环境 python3 pycharm pytest pytest编写规范 测试文件以test_开头或以_tes...

  • Python 编码规范(Style Guide)1

    在编写Python代码的时候,最好遵循Python 编码规范,这样,别人容易读懂你的代码,你也容易读懂别人的代码。...

  • 如何用 PEP 8 编写优雅的 Python 代码!

    教你怎么编写符合规范的Python代码,文章较长,请准备好咖啡 原文地址:How to Write Beautif...

网友评论

  • 4588e4274830:楼主,py,php,web安全都学么?
    cws:@代码描绘人生 学的web安全,py可以写工具,肯定是要掌握的,目前还在学习中。php略有了解
  • 代号027:是Pep8规范吧
    cws:@一点简单 是的

本文标题:Python编写规范

本文链接:https://www.haomeiwen.com/subject/ryesjttx.html