函数三 ——装饰器函数

it2022-05-05  45

一、装饰器的本质:一个闭包函数

  装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展

  

import time def func1(): #被装饰的函数 print('in func1') def timmer(func): #装饰器函数 def inner(): start = time.time() func() end = time.time() print(end - start) return inner func1 = timmer(func1) func1() import time def timmer(func): #装饰器函数 def inner(): start = time.time() func() end = time.time() print(end - start) return inner @timmer #语法糖 @装饰器函数名 #==> func1 = timmer(func1) def func1(): #被装饰的函数 print('in func1') func1()

 

装饰一个带参数的函数

import time def timmer(func): def inner(m): start = time.time() func(m) end = time.time() print(end - start) return inner @timmer #===>func1 = timmer(func1) def func1(a): print(a) func1(5)

 

被修饰函数中带有返回值

import time def timmer(f): #装饰器函数 def inner(): start = time.time() ret = f() #被装饰的函数 end = time.time() print(end - start) return ret return inner @timmer #语法糖 @装饰器函数名 def func(): #被装饰的函数 time.sleep(0.1) print('hello world') return '新年好' # func = timmer(func) ret = func() print(ret)

 

转载于:https://www.cnblogs.com/huangjm263/p/8136387.html

相关资源:Python学习之路——函数的闭包与装饰器

最新回复(0)