在python中编程碰到过这样一件事情,需要给大量的函数做相同的操作,这样每个函数都去实现一遍这个功能显然是浪费时间。 #这是一个装饰器函数 def DecoratorFunc(func): #Function就是对传入的func函数的包装,以便加入更多的功能 def Function(): printf('hello world')#简单的做一些额外操作,可以是其它操作 return func return Function 现在有了装饰器函数,如何应用到其它函数上呢,用@来使用,如下: @DecoratorFunc def run(): printf('my run function') 上面的函数就应用了DecoratorFunc这个装饰器的方法,则当我们调用run这个函数的时候,程序的运行是这样的,它先把run这个函数传入DecoratorFunc这个函数里面,然后对其进行简单的工作后返回结果,如果是上面的写法的话,最后输出应该是 hello world my run function 这两句 这里只是简单的例子,装饰器函数可以做的很丰富 如果像上面的run函数有参数的话,则可以用下面的包装函数,多了参数而已 def DecoratorFunc(func): #*args表示元祖参数,**kargs表示字典参数 def Function(*args,**kargs): printf('hello world') return func(*args,**kargs) return Function
python的装饰器decorator
2020-01-06 20:20:39
浏览数 (1)