首页 > 代码库 > python 装饰器学习

python 装饰器学习

转自:http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html

第一步: 最简单的函数,准备附加额外功能

示例1:最简单的函数,表示调用了两次
>>> def myfunc(): ... print("myfunc() called.") ... >>> myfunc() myfunc() called. >>> myfunc() myfunc() called.

第二步:使用装饰函数在函数执行前和执行后分别附加额外功能

示例2:替换函数(装饰)
装饰函数的参数是被装饰的函数对象,返回原函数对象
装饰的实质语句: myfunc = deco(myfunc)‘‘‘

>>> def deco(func): ... print("before myfunc() called.") ... func() ... print(" after myfunc() called.") ... return func ... >>> def myfunc(): ... print(" myfunc() called.") ... >>> myfunc = deco(myfunc) before myfunc() called. myfunc() called. after myfunc() called. >>> myfunc() myfunc() called. >>> myfunc()

 

python 装饰器学习