1

我有一门课看起来是这样的:

class RSA:
 def encode(self,gui): 
    print "decoding started"

当按下位于另一个类中的按钮时,我想从另一个类调用编码函数。如果编码函数只有一个参数——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++ 中轻松完成,但在这里,我想知道它不像那里那样工作。

提前感谢您的任何回复!

4

1 回答 1

3

你想要一个匿名函数来创建一个闭包

self.encode = Button(frame,command=lambda : rsa.encode (self.parameter) )
于 2012-11-19T15:26:34.490 回答