gpt4 book ai didi

python - 如何将 functools.partial 用于类方法?

转载 作者:行者123 更新时间:2023-12-05 02:56:10 25 4
gpt4 key购买 nike

我想将 functools 的部分应用到类方法。

from functools import partial

class A:
def __init__(self, i):
self.i = i

def process(self, constant):
self.result = self.i * constant

CONST = 2
FUNC = partial(A.process, CONST)

当我尝试时:

FUNC(A(4))

我遇到了这个错误:

'int' object has no attribute 'i'

好像已经和对象A交换了CONST

最佳答案

您将一个 positional 参数与 partial 绑定(bind),它将转到 process 的第一个参数,self。当您随后调用它时,您将 A(4) 作为第二个位置参数 constant 传递。换句话说,参数的顺序被打乱了。您需要将 CONST 显式绑定(bind)到 constant:

FUNC = partial(A.process, constant=CONST)

或者这会做同样的事情:

FUNC = lambda self: A.process(self, CONST)

关于python - 如何将 functools.partial 用于类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60756161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com