zoukankan      html  css  js  c++  java
  • Python PEP8标准

    1.编码

    1. 如无特殊情况,文件一律使用utf-8编码
    2. 如无特殊情况,文件头部必须添加# -*- coding:utf-8 -*- 标志

    2.代码

    1. 统一使用四个空格缩进
    2. 每行代码不超过80个字符
    3. 自然语言使用双引号,如input里面,或者错误信息,正则表达式使用原生的双引号r" ",
    4. 机器标识使用单引号,如dict里面的key,因此代码里面多数应该使用单引号。
    5. 文档字符串使用三个双引号。""" """

    3.空行

    1. 模块级函数和类定义之间空两行
    2. 类成员函数之间空一行
    3. 可以使用多个空行分隔多组相关函数
    4. 函数中可以用空行分隔出逻辑相关的代码
    class A:
    
        def __init__(self):
            pass
    
        def hello(self):
            pass
    
    
    def main():
        pass

    4.import语句

    1. import 语句应当分行书写
    2. import语句应当使用absolute import
    3. import语句应当放在文件头部,置于模块说明及docstring之后,全局变量之前
    4. import语句应该按照顺序排列,每组之间用一个空格分隔,按照内置模块,第三方模块,自己所写的模块调用顺序,同时每组内部按照字母表顺序排列
    #Right
    import os
    import sys
    
    from subprocess import Popen, PIPE
    
    from foo.bar import Bar
    
    #False
    import os, sys
    from ..bar import  Bar

    5.空格

    在二元运算符两边各空一格:[=, - ,+ =, > , in , is ,not , and]

    i = i + 1
    x = x * x + 2
    c = (a + b) * (a - b)

    函数的参数列表中,","之后要有空格,默认值等号两边不要添加空格,左括号之后,右括号之前不要有空格

    def complex(real, image=0):
        pass

    6.换行

    python支持括号内的换行,这时有两种情况:

    1.第二行缩进到括号的起始处

    2.第二行缩进四个空格,适用于起始括号就换行的情形

    a = list(var1, var2,
               var3)
    
    a=list(
        var1,
        var2,
        var3)

    7.注释

    #号后需空一格,不要使用无意义的注释

    x = x + 1 # 边框加粗一个像素

    8.docstring

    1.所有公共模块,函数,类,方法都应该有docstring。

    9.命名规范

    • 应避免使用小写字母l,大写字母O或I单独作为一个变量,以区分数字1和0.
    • 包和模块使用全小写命名,,尽量不要使用下划线
    • 类名使用CamelClass命名风格,内部类可用一个下划线开头
    • 函数使用下划线分隔的小写命名
    • 常量使用以下划线分隔的大写命名
    MAX_OVERFLOW = 100
    
    class FooBar:
    
        def foo_bar():
            pass
    • 单字符命名应该尽量避免,除了计数器和迭代器
    • 模块名尽量小写命名,首字母小写,尽量不要使用下划线(除非多个单词且数量不多的情况)
    • 类名:首字母大写,私有类可以用一个下划线开头
    • 将相关的类和顶级函数放在同一个模块中,没必要限制一个类一个模块
    • 函数名:一律小写,如有多个单词一律用下划线隔开
    • 私有函数在函数名前加一个下划线
    • 变量名尽量小写,如有多个单词,用下划线隔开
    • 常量采用全大写,如有多个单词,使用下划线隔开
    #False
    s = "Hello World"
    l = 1
    import Decoder
    
    #True
    class Farm():
    class Animal():
    class _PrivateFarm():
    def run():
    count = 0
    school_name = "xidian"
    MAX_CLIENT = 100

    10.程序设计规范

    1.尽量不要直接将代码写在模块顶层,在执行主程序之前总是检查:if __name__ = '__main__',这样模块被导入主程序时就不会被执行了

    #wrong
    do_something()
    
    #right
    def main():
        do_something():
    
    if __name__ == '__main__':
        main()

    所有的顶层代码在模块导入时都会被执行,要小心不要去调用函数,创建对象,或者执行哪些不该被执行的操作

    尽量不要用+号拼接字符串,使用join函数拼接

    在不复杂的情况下,尽量多用列表生成式,可以是代码更清晰

    尽量使用map和filter等内置函数而不是自己去写循环

    正则表达式之前一律加r,正则表达式使用之前一律编译好。

  • 相关阅读:
    MySQL
    Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
    ps
    top
    sed
    nav响应范围一定要足够宽
    续上获取input的checked用prop时返回的是布尔值
    jq不应该用attr获取input的check值
    jq祖级元素
    一些jquery的坑
  • 原文地址:https://www.cnblogs.com/pythonlearing/p/9938451.html
Copyright © 2011-2022 走看看