标签:应用 操作 hang 返回 错误 表示 对齐 其他 应用程序
1.主动换行
2.合理使用括号去实现隐式连接
if (width == 0 and height == 0 and color == ‘red‘ and emphasis == ‘strong‘):
3.使用圆括号实现隐士连接
str1= (‘zhang‘ ‘jingxue‘) str2 = (‘zhang\n‘ ‘jingxue‘) print(str1) print(str2) """ zhangjingxue zhang jingxue """
不建议使用\ 进行显示连接
str2 = ‘zhang‘ ‘jingxue‘
4.注释中,如果出现URL,一定要写在一行
url = ‘http://192.168.30.124:50084/biz/project-task-50-byModule-54.html‘
5.不要在返回值或着条件语句中使用括号,除非需要数学计算或者行连接
def fun1(a,b): return a,b #正确 def fun2(c,d): return (c,d) #错误
6.函数变量与起始变量对齐
def test_zjx(var1,var2,var3,var4, var5,var6,var7): pass
7.四个空格缩进
foo = long_function_name(
var_one, var_two, var_three,
var_four)
8.顶级定义之间空2行,方法定义之间空1行
pycharm编辑器的格式化是遵循PEP8规范的,pycharm中,选择工具栏的code--》reformat code 进行格式化
顶级定义:
def test1(): pass def test2(): pass
方法定义:
class A: def test1(self): pass def test2(self): pass
9.括号里不要有空格
def test(name = None, age = None): # 错误 pass def test(name=None, age=None): #正确 pass
10.逗号,冒号,分号后面加空格
def test(x,y): # 错误 pass def test(x, y): # 正确 pass
11.不要用空格垂直对齐注释
def test(x, y): sum = x + y #求和 chengji = x * y #求积
12.文档注释(文档字符串--docstring)
13.代码块中,对于复杂的操作, 应该在其操作开始前写上若干行注释. 对于不是一目了然的代码, 应在其行尾添加注释.绝不要描述代码
# We use a weighted dictionary search to find out where i is in # the array. We extrapolate position based on the largest num # in the array and the array size and then do binary search to # get the exact number. if i & (i-1) == 0: # true iff i is a power of 2
14.如果一个类不继承其他类,就显式的从object继承,嵌套类也是一样
class OuterClass(object): class InnerClass(object): pass
15. 避免在循环中用+和+=操作符来累加字符串. 由于字符串是不可变的, 这样做会创建不必要的临时对象, 并且导致二次方而不是线性的运行时间. 作为替代方案, 你可以将每个子串加入列表, 然后在循环结束后用 .join 连接列表
正确: items = [‘<table>‘] for last_name, first_name in employee_list: items.append(‘<tr><td>%s, %s</td></tr>‘ % (last_name,first_name)) items.append(‘</table>‘) employee_table = ‘‘.join(items) 错误: employee_table = ‘<table>‘ for last_name, first_name in employee_list: employee_table += ‘<tr><td>%s, %s</td></tr>‘ % (last_name,first_name) employee_table += ‘</table>‘
16.为多行字符串使用三重双引号“”“,而非三重单引号。当且仅当项目中使用单引号‘来引用字符串时, 才可能会使用三重‘‘‘
17. 关闭类文件对象的方法,对于不支持使用"with"语句的类似文件的对象,使用contextlib.closing():
import contextlib with contextlib.closing(urllib.urlopen("http://www.python.org/")) as front_page: for line in front_page: print line
注意:扩展:同时含有‘__enter__‘, ‘__exit__‘, 这2个属性的文件,才支持with。没有这2个属性,不支持with打开文件的,就要使用上面的方法。
18. 为临时代码使用TODO注释, 它是一种短期解决方案. 不算完美, 但够好了.TODO注释应该在所有开头处包含"TODO"字符串, 紧跟着是用括号括起来的你的名字, email地址或其它标识符. 然后是一个可选的冒号. 接着必须有一行注释, 解释要做什么. 主要目的是为了有一个统一的TODO格式
# TODO(Wuji) Change this to use relations.
def fun(): #TODO 后期实现的功能 pass
19.每个导入独占一行
导入顺序:
#不推荐: import sys, os #但是可以这样: from subprocess import Popen, PIPE
20.在没有else的情况下,if语句可以单独在一行
def fun(x,y): if x > 0: y = x + y return y
21.用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含). 单下划线_ ,是受保护的 proected -----当前文件是可以用的,只是不能导出到别的文件用
22. 用双下划线(__)开头的实例变量或方法表示类内私有 private,----只能在这个类内部使用,别的类用不了。
23. 将相关的类和顶级函数放在同一个模块里. 不像Java, 没必要限制一个类一个模块
24. main
即使是一个打算被用作脚本的文件, 也应该是可导入的. 并且简单的导入不应该导致这个脚本的主功能(main functionality)被执行, 这是一种副作用. 主功能应该放在一个main()函数中
在Python中, pydoc以及单元测试要求模块必须是可导入的. 你的代码应该在执行主程序前总是检查 if __name__ == ‘__main__‘ , 这样当模块被导入时主程序就不会被执行.
def main(): ... if __name__ == ‘__main__‘: main()
25.所有行限制最大的字符数是79
26.空序列的判断
#正确: if not seq: if seq: #错误 if len(seq): if not len(seq):
27.不要用==去和布尔值比较
正确: if greeting: 糟糕: if greeting == True: 更糟: if greeting is True:
标签:应用 操作 hang 返回 错误 表示 对齐 其他 应用程序
原文地址:https://www.cnblogs.com/zhangjx2457/p/14026335.html