我有一个看起来如此的课程:
class RSA:
def encode(self,gui):
print "decoding started"
当按下位于另一个类的按钮时,我想从另一个类调用encode函数。我可以做得很好,如果编码功能只有一个参数 - self。
我是这样做的:
Class GUI:
self.parameter=8 # parameter which I want to pass
def method(self):
encode = Button(frame,command=rsa.encode)
它工作正常(如果编码函数只有一个默认参数-self)。
但我需要将一个参数传递给函数rsa.encode。如果我试图通过它:
self.encode = Button(frame,command=rsa.encode (self.parameter) )
- 当翻译到达这一行时,它会被立即调用,并且不会再被调用。
但这不是我想要的,我希望只有按下按钮才能调用它。它可以很容易地用C ++完成,但在这里,我想知道它不像那里那样工作。
提前感谢您的回复!
答案 0 :(得分:3)
您希望anonymous function创建closure:
self.encode = Button(frame,command=lambda : rsa.encode (self.parameter) )