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'
python的try和except用法
# package/module 名中不要出现 -
# 不要轻易使⽤ try/except,except 后⾯需要指定捕捉的异常,裸露的 except
# 会捕捉所有异常,意味着会隐藏潜在的问题
# 可以有多个 except 语句,捕捉多种异常,分别做异常处理
age = '111'
try:
age = int(age)
except(TypeError, ValueError):
render_template()
# 使⽤ finally ⼦句来处理⼀些收尾操作
try:
db.sessionmit()
SQLAlchemyError: # 或者更具体的异常
llback()
finally:
db.session.close()
# 显⽰的写明⽗类,如果不是继承⾃别的类,就继承⾃ object 类
# 使⽤ super 调⽤⽗类的⽅法
# ⽀持多继承,即同时有多个⽗类,建议使⽤ Mixin
class MyClass(object):
pass

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。