如何在Python中绑定常量参数?

Yul*_*a V 1 python

我有一个类似的课程

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.)
Run Code Online (Sandbox Code Playgroud)

我需要传递一个类的特定实例的方法作为参数.传instC.noParam工作正常,但我怎么通过instC.withParam与b总是等于说239?谢谢.

Nic*_*tin 12

你想用functools.partial:

import functools

instC = C(5.)
meth = functools.partial(instC.withParam, 239)
Run Code Online (Sandbox Code Playgroud)

然后你可以传递这个方法(绑定你的实例和值239):

do_thing(meth)
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的方法,但也可以提一下`lambda` - 它既是另一种选择,也有助于解释`partial`正在做什么. (2认同)

Sam*_*uns 7

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

meth = lambda: instC.withParam(239)