Skip to main content
 首页 » 编程设计

python之在 python 27 中,如何将带参数的方法传递给类的 __init__()

2025年05月04日31sxdcgaq8080

我正在尝试将一个参数传递给一个我想从类的实例调用的函数,但我不知道该怎么做。如果我不传递任何参数,我可以做得很好,但当我开始传递参数时,一切都在我面前爆炸了。

这是我想做的一个例子。

class foo: 
    def __init__(self, use_function=None): 
        self.use_function = use_function 
 
    def call(self): 
        self.use_function() 
 
def bar(number): 
    print 'number is ' + str(number) 
 
myObj = foo( use_function=bar(15) ) 
 
myObj.call() 

请您参考如下方法:

你不能传递参数,因为你的 __init__ 函数不接受参数,它只接受函数。如果您传递 bar(15),它会调用 bar before __init__ 和 __init__ 接收 bar(15) 的返回值(在本例中为 None)。

如果你想让 __init__ 调用 bar(15),你可以做 foo( use_function=lambda: bar(15) )。这将传递给 __init__ 一个零参数函数,该函数在调用时将调用 bar(15)。