试图理解python装饰器

时间:2017-08-05 23:18:19

标签: python

我正在尝试了解Python decorators,但我仍感到困惑。我正在尝试解决以下错误: “创建一个函数来组合两个数字,然后创建一个装饰器,使结果加倍。”

我的代码:

x=6
y=5
u=None
def multi(func):
    def adding(*args):
        print("Welcome func {}".format(func.__name__))
        func(*args)
    return adding

@multi
def tyu(x,y):
    print("=> ", x+y)
    u = x+y
    return u

u = tyu(x,y)

@multi
def dss(u):
    dd=u*2
    return dd
yy=dss(u)
print("** ", yy)

1 个答案:

答案 0 :(得分:1)

你几乎拥有它。您只需要在装饰器内返回'}'并将结果乘以2.

func

示例:

def multi(func):
    def adding(*args):
        print("Welcome func {}".format(func.__name__))
        return 2 * func(*args)
    return adding

@multi
def add(a, b):
    return a + b