我正在尝试将一个参数传递给一个我想从类的实例调用的函数,但我不知道该怎么做。如果我不传递任何参数,我可以做得很好,但当我开始传递参数时,一切都在我面前爆炸了。
这是我想做的一个例子。
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)
。
关于python - 在 python 27 中,如何将带参数的方法传递给类的 __init__()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32600073/