python传递参数来起作用

时间:2012-11-19 15:25:26

标签: python class parameters

我有一个看起来如此的课程:

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 ++完成,但在这里,我想知道它不像那里那样工作。

提前感谢您的回复!

1 个答案:

答案 0 :(得分:3)

您希望anonymous function创建closure

self.encode = Button(frame,command=lambda : rsa.encode (self.parameter) )