自学Python之路-Python基础+模块+面向对象
自学Python之路-Python网络编程
自学Python之路-Python并发编程+数据库+前端
自学Python之路-djangohtml
time.time() # 获取当前时间 time.sleep(10) #让程序在执行到这个位置的时候停10s
代码1:前端
import time print(time.time()) def func(): # 被装饰的函数 start = time.time() # 获取开始的时间 print('我好喜欢你们啊 ~~') # 测试时间的代码 end = time.time() print(end-start) func()
代码2:
因为执行代码的速度太快,没有体现出来结果,这是可使用 time.sleep(10) 加大代码执行的时间。python
import time print(time.time()) def func(): # 被装饰的函数 start = time.time() # 获取开始的时间 print('我好喜欢你们啊 ~~') # 测试时间的代码 time.sleep(0.01) end = time.time() print(end-start) func()
代码3: 数据库
为了让函数func()彻底分离出来,如今定义一个新函数timmer(),主要用于计算函数的执行时间(开始的时间,结束时间,执行的函数)django
import time print(time.time()) def func(): # 被装饰的函数 time.sleep(0.01) print('我好喜欢你们啊 ~~') # 测试时间的代码 def timmer(func): #装饰函数 start = time.time() # 获取开始的时间 func() end = time.time() print(end-start) timmer(func) #执行timmer,并且是执行参数func的函数
代码4: 装饰器编程
其实上面的例子,真正环境下是存在问题的。 应该最终调用func(), 最好调用func()时候实质是调用timmer()缓存
函数的闭包定义:网络
在函数内部再定义一个函数,而且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包。闭包
装饰器本质上就是一个python闭包函数,他可让其余函数在不须要作任何代码变更的前提下,增长额外的功能,装饰器的返回值也是一个函数对象。并发
装饰器的应用场景:好比插入日志,性能测试,事务处理,缓存等等场景。
import time print(time.time()) def func(): time.sleep(0.01) print('我好喜欢你们啊 ~~') def timmer(f): #装饰器函数 def inner(): start = time.time() f() #被装饰的函数 end = time.time() print(end - start) return inner func = timmer(func) func() # 其实执行的是inner()
import time
print(time.time())
def timmer(f): #装饰器函数
def inner():
start = time.time()
f()
end = time.time()
print(end - start)
return inner
@timmer #语法糖 @装饰器的函数 ,至关于func = timmer(func)
def func(): #被装饰的函数
time.sleep(0.01)
print('我好喜欢你们啊 ~~')
func()