1.import time
a.time.time()
获取到当前的时间,返回值为浮点型
import time print(time.time()) #1565422783.6497557
b.time.sleep()
让程序执行到这个位置暂停一会
import time start = time.time() time.sleep(0.5) print('hello world!') end = time.time() print(end - start) #0.5000286102294922
2.装饰器
开发原则:开放封闭原则
装饰器的作用:在不改变原函数的情况下,在函数的前后添加功能
装饰器的本质:闭包函数
当想要知道一个程序执行的时间
import time start = time.time() time.sleep(0.5) print('hello world!') end = time.time() print(end - start) #0.5000286102294922
再将里面的功能单独拉出来变成一个函数
import time def func(): time.sleep(0.5) print('hello world!') def timer(func): start = time.time() func() end = time.time() print(end - start) timer(func) #hello world! #0.5000286102294922
将timer变成一个简单的装饰器
import time def func(): #被装饰的函数 time.sleep(0.5) print('hello world!') def timer(func): #装饰函数 def inner(): start = time.time() func() end = time.time() print(end - start) return inner #回传inner函数的内存地址 get_inner = timer(func) #后者得到的是inner的内存地址再赋值给get_inner get_inner() #hello world! #0.5000286102294922
执行步骤:
开放封闭原则:开放指的是对扩展开放,封闭指的是对修改封闭
语法糖:@装饰器函数名 可以替代下面的写法
装饰带一般参数且有返回值函数的装饰器
import time def wrapper(f): #装饰器函数 def inner(x): res = f(x) return res return inner @wrapper #相当于 fuc = wrapper(fuc) def fuc(var): #被装饰的函数 print(var,'Python') return False res = fuc('Hello') print(res)
装饰带万能参数的函数装饰器
import time def wrapper(f): #装饰器函数 def inner(*args,**kwargs): start = time.time() ret = f(*args,**kwargs) end = time.time() print(end - start) return ret return inner @wrapper #相当于 fuc = wrapper(fuc) def fuc(a,b,c,d,e = 5): #被装饰的函数 time.sleep(0.5) print(a,b,c,d,e) return e print(fuc(1,2,3,4,'Python'))
总结:装饰器的模板
import time def wrapper(f): def inner(*args,**kwargs): #在被装饰函数之前要做的事 res = f(*args,**kwargs) #在被装饰函数之后要做的事 return res return inner @wrapper # func = wrapper(func) def func(): #被装饰的函数 return ret = func() print(ret)