python3.7 装饰器
#!/usr/bin/env python __author__ = "lrtao2010" #python3.7 装饰器 #装饰器 ''' 定义:本质就是一个函数,作用是为其他函数添加新的功能。 遵循的原则: 1、不改变被修饰函数的源代码(开放封闭原则); 2、为被装饰函数添加新功能后,不修改被修饰函数的调用方式。 ''' #装饰器=高阶函数 + 函数嵌套 + 闭包 #高阶函数 ''' 定义: 1、函数接收的参数是一个函数名; 2、函数的返回值是一函数名; 3、满足上述条件任意一个,都称之为高阶函数 ''' #函数嵌套 #在一个函数中再定义一个函数,并调用该函数 #闭包 #在一个作用域里放入定义的变量,相当于打了一个包 # import time # # def run_time(func): # def wrapper(): # star_time = time.time() # func() # stop_time = time.time() # print("运行时间是%s" %(stop_time - star_time)) # return wrapper # # @run_time # #@ 语法糖 @run_time 等同于执行test=run_time(test),run_time(test)返回的是wrapper的地址 # def test(): # time.sleep(3) # print('test run over') # # test() #test() 执行的是wrapper() # # test run over # 运行时间是3.0000040531158447 # # import time # # def run_times(func): # def wrapper(*args): # star_time = time.time() # func(*args) # stop_time = time.time() # print("运行时间是%s" %(stop_time - star_time)) # return wrapper # # @run_times # def add(*args): # res=0 # for i in args: # time.sleep(1) # res+=i # print(res) # add(1,2,3,4,5,6,7,8,9,10) # # 55 # 运行时间是10.000013828277588