Python代码规范
1.代码编排
1.缩进4个空格
2.行长80
2.import
1.不要使用 from xxx import *
2.单行不要import多个库
3.模块用不到的不要去import
3.空格
1.: , ; 后面跟一个空,前面无空格
2.运算符前后各一个空格
3.当=用于指示关键字或默认参数是,不用空格
4.适当添加空行
1.函数间空1-2行
2.同一函数内的逻辑块之间空一行
3.文件结尾空一行
5.注释
1.忌:逐行注释或没有注释
2.一段逻辑开始时加注释
3.引用时需在注释中添加源链接,标明出处
6.命名
1.尽量不要用单字母进行命名
2.包名、模块名、函数名、方法名全部使用小写,单词间用“_”连接
3.类名、异常名首字母大写
4.全局变量尽量使用大写
7.字符串尽量用join拼接,速度快,内存消耗小
8.自定义的变量名、函数名不要与标准库中的名字冲突
*和**的用法
函数定义
def foo(*args, **kwargs):
pass
参数传递
def foo(x, y, a, b):
print(x)
print(y)
print(z)
print(a)
print(b)
lst = [1, 2, 3]
dic = {'a' : 22, 'b' : 77}
foo(*lst, **dic)
装饰器
装饰器实际上就是为了给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器
最简单的装饰器
def deco(func):
def wap():
return func()
return warp
@deco
def A():
print('joker')
A()
进程和线程
我理解的进程和线程
如果把进程比作售票厅,那么线程就是售票窗口。
最简单的多进程
import multiprocessing
import os
def A(name):
print(os.getpid())
print(name)
if __name__ == "__main__":
p1 = multiprocessing.Process(target=A, args = ('joker'))
p2 = multiprocessing.Process(target=B, args = ('joker1'))
p1.start()
p2.start()
p1.join()
p2.join()
print('ok')