我有一个类似于
的课程class C:
def __init__(self, a):
self.a = a
def noParam(self):
return self.a
def withParam(self, b)
return self.a + b
instC = C(5.)
我需要将类的特定实例的方法作为参数传递。通过instC.noParam
工作正常,但如何通过instC.withParam
b
总是等于说239
?感谢。
答案 0 :(得分:12)
您想使用functools.partial
:
import functools
instC = C(5.)
meth = functools.partial(instC.withParam, 239)
然后你可以传递这个方法(用你的实例和值239绑定):
do_thing(meth)
答案 1 :(得分:7)
您可以使用lambda
函数绑定参数:
meth = lambda: instC.withParam(239)