一、原因

  1、长期的工作中,发现大多数程序员的代码可读性差

  2、不同的程序员之间的协作很重要,代码可读性必须很好

  3、版本升级时,要基于源码升级

  4、不友好的代码会影响python的执行效率

二、基于的规范

  1、PEP 8: Style Guide for Python Code---------Python的编码风格建议

  2、Google Python Style Guide--------------Goole Python编码风格建议

三、Python语言规范

  1. imports 仅仅用做包和模块的导入,包的导入每个尽量独占一行

  2. packages 导入模块尽量使用模块的全路径

  3. Exceptions 必须小心使用

  4. Global variables 避免使用全局变量

  5. Generator

  6. lambda 函数仅仅适用于一行代码能实现的简单函数

  7. True or False 尽量使用[],'',{},0,None来隐式表示False

    

四、Python风格规范 

  1、代码编排

    1 缩进:4个空格实现缩进,尽量不使用Tab,禁止混用Tab和空格

    2 行:每行最大长度不超过79,换行可以使用反斜杠(\)。最好使用圆括号将换行内容括起来,不建议使用“;”

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

    4 空格:括号内的第一个位置,不要空格。紧靠右括号的位置也不要空格。冒号(:)、逗号(,)、分号(;)之前不要加空格。切片木有参数,不要加空格等

    5 括号:对于单元素tuple一定要加,和括号

  2、命名规范

    module_name

    package_name

    ClassName

    method_name

    ExceptionName

    function_name

    GLOBAL_CONSTANT_NAME

    global_var_name

    instance_var_name

    function_parameter_name

    local_var_name

  3、注释规范

    

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

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

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

    3. 避免无谓的注释。

  4、编程建议

    1. 字符串拼接,尽量使用join。使用str的方法而不是内置方法。使用startswith或endswith拉检查前缀和后缀

    2. 单例对象,尽量使用is 、is not,不要使用==

    3. 使用is not而不是not is

    4. 使用def来定义函数,而不是将匿名函数赋给某个变量

    5. 尽量使代码整齐,简洁

    6. 使用isinstance()来判断instance的类型

    

Python编码规范和Python风格规范的更多相关文章

  1. PHP团队 编码规范 & 代码样式风格规范

    一.基本约定 1.源文件 (1).纯PHP代码源文件只使用 <?php 标签,省略关闭标签 ?> : (2).源文件中PHP代码的编码格式必须是无BOM的UTF-8格式: (3).使用 U ...

  2. python编码问题总结

    最近利用python抓取一些网上的数据,遇到了编码的问题.非常头痛,总结一下用到的解决方案. linux中vim下查看文件编码的命令 set fileencoding python中一个强力的编码检测 ...

  3. python编码总结

    关于ASCII码和Unicode码的来源 计算机只能处理数字,如果要处理文本,需要先将文本转换成数字.早期计算机采用8bit作为一个字节(byte).所以一个字节最大为255(二进制11111111= ...

  4. Python 编码错误解决方案

    Python 编码错误解决方案 Python UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 7: ordin ...

  5. 一步一步学Python(1) 基本逻辑控制举例和编码风格规范

    (1) 基本逻辑控制举例和编码风格规范 1.while死循环 2.for循环 3.if,elif,else分支判断 4.编码风格(官方建议) 版本:Python3.4 1.while死循环 #func ...

  6. python编码规范

    python编码规范 文件及目录规范 文件保存为 utf-8 格式. 程序首行必须为编码声明:# -*- coding:utf-8 -*- 文件名全部小写. 代码风格 空格 设置用空格符替换TAB符. ...

  7. 【转】python编码规范

    http://blog.csdn.net/willhuo/article/details/49300441 决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是 ...

  8. python 编码规范整理

    PEP8 Python 编码规范 一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不要使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号. ...

  9. PEP8 - Python编码规范

    PEP8 - Python编码规范 PEP8 规范 官方文档:https://www.python.org/dev/peps/pep-0008/ PEP8 规范 中文翻译:http://www.cnb ...

随机推荐

  1. 浏览器检测-js

    昨天有一同学问我为什么attachEvent在非IE浏览器下不能起作用,我也跟他解释了一番:attachEvent是IE下独有的,只能在IE下使用,其他浏览器下应该用addEventListener来 ...

  2. LabVIEW之安装队列工具包AMC安装问题解决

    LabVIEW之安装队列工具包AMC安装问题解决--VIPM无法连接LabVIEW 彭会锋 参考资料: http://www.labviewpro.net/forum_post_detail.php? ...

  3. program发展史及以后预测

    三个阶段:第一个阶段是1950年代到1960年代,是程序设计阶段,基本是个体手工劳动的生产方式.这个时期,一个程序是为一个特定的目的而编制的,软件的通用性是很有限的,软件往往带有强烈的个人色彩.早期的 ...

  4. windows下使用selenium报错selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH

    问题 :执行程序代码报错: WebDriverException:Message:'geckodriver'executable needs to be in Path 或者 selenium.com ...

  5. Python执行Linux系统命令方法

    Python执行Linux系统命令的4种方法 (1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 复制代码代码如下: system(command) -> ...

  6. nodejs利用express操作mysql增删改查

    如果不知道怎么连接数据库的请看http://www.cnblogs.com/complete94/p/6714757.html 我当大家都知道怎么连接数据库了,那么 我们开始吧 var express ...

  7. hdu 3032 Nim or not Nim? sg函数 难度:0

    Nim or not Nim? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  8. fegin--调用超时设置

    Feign请求超时问题 Hystrix默认的超时时间是1秒,如果超过这个时间尚未响应,将会进入fallback代码.而首次请求往往会比较慢(因为Spring的懒加载机制,要实例化一些类),这个响应时间 ...

  9. L169 Komodo dragons

    Komodo dragons live on a handful of islands in Indonesia, but their reputation has spread far and wi ...

  10. 转:JAVA CAS原理深度分析

    看了一堆文章,终于把Java CAS的原理深入分析清楚了. 感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到! 参考文档: http://www.blogjava.net/xylz/ ...