python装饰器
作者:互联网
看起来似乎 是调用被装饰的函数,其实是先去调用装饰函数,在装饰函数的内部再来调用被装饰的函数,当然在此过程中,可以对数据进行进一步的加工。
如下所示:
def deco(func):
def _deco(aa, bb): #这里的形参和被装饰函数的形参可以不相同
aa,bb=aa*bb,bb-aa
c=complex(aa,bb)
print("在函数myfunc()之前被调用.")
ret = func(c, bb)
print("在函数myfunc()之后被调用,结果是:%s" % ret)
#原文 在这里有个return ret ,其实没必要
return _deco
@deco
def myfunc(a, b):
print("函数myfunc(%s,%s)被调用!" % (a, b))
return a + b
myfunc(1, 2)
myfunc(3, 4)
结果:
在函数myfunc()之前被调用.
函数myfunc((2+1j),1)被调用!
在函数myfunc()之后被调用,结果是:(3+1j)
在函数myfunc()之前被调用.
函数myfunc((12+1j),1)被调用!
在函数myfunc()之后被调用,结果是:(13+1j)
>>>
标签:aa,myfunc,调用,函数,bb,python,deco,装饰 来源: https://blog.csdn.net/minoboy/article/details/112559219