1

我有一个类似于

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?谢谢。

4

2 回答 2

12

你想使用functools.partial

import functools

instC = C(5.)
meth = functools.partial(instC.withParam, 239)

然后您可以传递此方法(与您的实例和值 239 绑定):

do_thing(meth)
于 2013-04-17T17:44:54.187 回答
7

您可以使用lambda函数来绑定参数:

meth = lambda: instC.withParam(239)

于 2013-04-17T17:45:32.707 回答