zoukankan      html  css  js  c++  java
  • python代码PEP8规范示例

    """
    文档字符串 docstring, 是 package, module, class, method, function 级别的注释,可以通过 doc 成员访问到,注释内容在一对双引号
    优先使用英文写注释,英文不好全部写中文,强行使用英文可能导致大家都看不懂
    1.所有 import 尽量放在文件开头,在 docstring 下面,其他变量定义的上面
    2.不要使用 from foo import *
    3.import 需要分组,每组之间一个空行,每个分组内的顺序尽量采用字典序,分组顺序是:
        3.1 标准库
        3.2 第三方库
        3.3 本项目的 package 和 module
    4.不要使用隐式的相对导入(implicit relative imports)
      可以使用显示的相对导入(explicit relative imports),如 from ..utils import parse
      最好使用全路径导入(absolute imports)
    5.同一个 package/module 下的内容可以写一起
    6.为了避免可能出现的命名冲突,可以使用 as 或导入上一级命名空间
    
    """
    import os
    import sys
    import db
    
    from flask import Flask, render_template, jsonify
    from collections import defaultdict as my_dict
    
    # 这是一个正确注释,#后面需要一个空格,如下为特例
    #!/usr/bin/python
    
    # 操作符两端加一个空格,如 +, -, *, /, |, &, =
    a = 1 + 2
    b = 10 - 1
    c = 1 * 2
    d = 10 / 5
    e = 10 | 20
    f = 5 & 6
    
    
    # 在参数列表里的 = 两端不需要空格
    def add(num1=1, num2=2):
        return num1 + num2
    
    
    # function 和 class 顶上两个空行
    class MyClass(object):
        def my_function1(self):
            pass
    
        # class 的 method 之间一个空行
        def my_function2(self):
            # 函数内逻辑无关的段落之间空一行,不要过度使用空行
            # 逻辑1
    
            # 逻辑2
    
            # 逻辑3
    
            return
    
    
    # 不要把多个语句写在一行,然后用 ; 隔开
    add(1, 2)
    add(3, 4)
    
    # 括号((), {}, [])内的两端不需要空格
    tmp = ('name1', 'name2')
    
    # if/for/while 语句中,即使执行语句只有一句,也要另起一行
    if True:
        print('另起一行')
    
    # 每一行代码控制在80字符以内,例子如下:
    # 面对抢票软件的花样,有专家提醒,虽然理论上抢票软件比人工刷新更快,但12306已经屏蔽了许多抢票端口并推出了“官方抢票”
    # 的候补功能——也就是,当没有余票时,12306会在车次列表中出现“候补”的字样。旅客可根据需求选择车次、席别,在成功支付
    # 候补预付款后,如果有匹配需求的车票,系统会自动生成已支付订单,并退回差额;如果没有,系统将全额退还预付款。那么,这个
    # 候补功能和市面上的抢票软件谁更好用?如果用抢票软件,又有哪些套路要小心?
    
    
    # 使用  或 () 控制换行
    def foo(tmp1='aa', tmp2='bb', tmp3='cc', tmp4='dd',
            tmp5='ee', tmp6='ff', tmp7='gg', tmp8='hh'):
        pass
    
    
    # 使用有意义的,英文单词或词组,绝对不要使用汉语拼音
    address = 'suzhou'
    
    # package/module 名中不要出现 -
    
    # 不要轻易使用 try/except,except 后面需要指定捕捉的异常,裸露的 except
    # 会捕捉所有异常,意味着会隐藏潜在的问题
    # 可以有多个 except 语句,捕捉多种异常,分别做异常处理
    age = '111'
    try:
        age = int(age)
    except(TypeError, ValueError):
        render_template()
    
    # 使用 finally 子句来处理一些收尾操作
    try:
        db.session.commit()
    except sqlalchemy.exc.SQLAlchemyError: # 或者更具体的异常
        db.session.rollback()
    finally:
        db.session.close()
    
    
    # 显示的写明父类,如果不是继承自别的类,就继承自 object 类
    # 使用 super 调用父类的方法
    # 支持多继承,即同时有多个父类,建议使用 Mixin
    class MyClass(object):
        pass
    

      

    参考文档:https://zhuanlan.zhihu.com/p/33705005

  • 相关阅读:
    May 1 2017 Week 18 Monday
    April 30 2017 Week 18 Sunday
    April 29 2017 Week 17 Saturday
    April 28 2017 Week 17 Friday
    April 27 2017 Week 17 Thursday
    April 26 2017 Week 17 Wednesday
    【2017-07-04】Qt信号与槽深入理解之一:信号与槽的连接方式
    April 25 2017 Week 17 Tuesday
    April 24 2017 Week 17 Monday
    为什么丑陋的UI界面却能创造良好的用户体验?
  • 原文地址:https://www.cnblogs.com/hester/p/12114668.html
Copyright © 2011-2022 走看看