zoukankan      html  css  js  c++  java
  • python编码规范

    python编码规范


    文件及目录规范

    • 文件保存为 utf-8 格式。

    • 程序首行必须为编码声明:# -*- coding:utf-8 -*-

    • 文件名全部小写。


    代码风格

    空格

    • 设置用空格符替换TAB符。

    • 代码缩进为4个空格符。

    • 仅在运算符前后(如+,-,=,==)各加一个空格,不要在用于指定关键字参数或默认参数值的'='号周围使用空格,其他语句和表达式中都不要加空格。

    分行

    • 程序头部声明和import之间、import和程序之间用一个空行分隔。

    • 类定义之间以及程序与if __name__ =="__main__":空两行。类定义行与成员函数之间以及函数定义之间空一行。

    • 每个语句独立一行,不要使用;在一行内放置多条语句。

    • 每行字符数控制在72以内,如果超长可以使用反斜杠()折行。

    • 如果语句包含()、[]、{},可使用括号内行延续,换行后加两个缩进以便于阅读。

    • 换行位置应在元素分隔符或操作符前。

    代码约定

    • import紧跟在编码声明和程序功能注释之后, import顺序应该是先系统标准包,其次第三方包,最后是自定义包。

    命名规则

    命名方法

    • Lowercase(小写)

    • lower_case_with_underscores(有下划线的小写)

    • UPPERCASE(大写)

    • UPPER_CASE_WITH_UNDERSCORES(有下划线的大写)

    • CapitalizedWords (或 CapWords,CamelCase这样命名是因为可从字母的大小写分出单词。这有时也被当作StudlyCaps。)

    • mixedCase (与CapitalizedWords的不同在于首字母小写!)

    命名约定

    • 单字符名称仅用于计数器和迭代器。

    • 双下划线开头并结尾的名称为系统保留命名法,编程中禁止使用。

    • 包名和模块名:不含下划线全小写。

    • 类名:使用CapWords约定。内部使用的类外加单下划线前缀。

    • 函数名和变量名:使用mixedCase约定。

    • 常量:使用有下划线的大写约定。

    • protected变量或函数:在mixedCase约定的基础上加单下划线前缀。

    • private变量或函数:在mixedCase约定的基础上加双下划线前缀。

    • 如果命名与系统名冲突,则加单下划线后缀。

    应避免的命名

    • 单字符名称, 除了计数器和迭代器。

    • 包/模块名中的连字符(-)。

    • 双下划线开头并结尾的名称。


    注释规范

    注释原则

    • 不要描述代码本身。

    • 功能修改后注释一定要第一时间修改。

    文档字符串

    文档字符串是python特有的注释形式。通常做为程序文件、包、模块、类、函数的注释方式,可以通过对象的__doc__成员被自动提取, 并且被pydoc所用.

    程序文件、包、模块注释

    位置在import之前,上下各空两行。

    '''<程序名>

    <功能说明>

    version:<版本号>

    author:<开发者姓名>

    createdate:

    modifydate:

    '''

    函数注释

    位置紧跟函数定义之后。

    '''<功能说明>

    args:<参数名>:<说明>
    ... ...

    returns:<返回值说明>

    raises:<可能引起的异常说明>

    '''

    类注释

    在函数注释的基础上加入attributes(属性)

    块注释

    通常用于说明程序段功能、技巧性编码等。位置在需说明的代码段之前。

    行注释

    作用同块注释,位置在需说明的代码后两个单位缩进处。


    编码指导

    • 类如果不继承自其他类,则应显式继承object。

    • 尽量使用%格式化方法组织字符串,不要使用字串拼接。如:"%s hello!" % (userName)

    • 尽可能使用with语句处理文件或socket句柄,以确保使用完后被关闭。

    • 尽可能使用is、is not取代== 。

    • 主程序应放在main()函数中,在程序文件的末尾通过如下形式调用。

    
    if __name__ =='__main__':
    
        main()
    
    

    参考

  • 相关阅读:
    python学习之关于变量与内存的问题
    [题解]GDUT 2020年11月赛DE题
    【转】关于Oracle默认用户名system密码不正确登录不上解决方案
    [转载] Monitor Tools
    java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getAsyncContext()Ljavax/servlet/AsyncContext;
    【SSM】Result Maps collection already contains value for crud.dao.EmployeeMapper.BaseResultMap
    EL表达式失效,页面取不到数据
    处理回归BUG最佳实践
    固定QPS压测初试
    Java字符串到数组的转换--最后放大招
  • 原文地址:https://www.cnblogs.com/lykyl/p/5704403.html
Copyright © 2011-2022 走看看