编程语言
首页 > 编程语言> > python装饰器

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