在Python中添加变量时如何修饰函数

2024-10-08 18:25:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python构造一个decorator,在这里我在decoration阶段添加一个变量。我知道如何编写一个decorator,在那里我只是在另一个函数的结果上运行一个函数,但是我在添加额外变量的语法上遇到了麻烦。本质上,我想用这个点积函数:

def dot(x,y):
    temp1=[]
    for i in range(len(x)):
        temp1.append(float(x[i])*y[i])
    tempdot=sum(temp1)
    return tempdot 

并从结果中减去值'b',所有这些都在一个较大的函数中给定参数x,y,b

在这种情况下,我是否试图滥用装饰功能?谢谢。在


Tags: 函数inforlendef语法rangedecorator
1条回答
网友
1楼 · 发布于 2024-10-08 18:25:44
import functools

def subtracter(b):
    def wrapped(func):
        @functools.wraps(func)
        def decorated_func(*args, **kwargs):
            return func(*args, **kwargs) - b
        return decorated_func
    return wrapped

然后把它当作

^{pr2}$

顺便说一句,你的点函数可以用一个生成器表达式来缩短,如下所示:

def dot(x, y):
    return sum(float(x)*y for x, y in zip(x, y))

相关问题 更多 >

    热门问题