什么样的隐形参数从内置函数传递到你的函数,如何找到

时间:2017-03-19 11:40:20

标签: python tkinter arguments built-in

这是绑定到函数

的tkinter Scaler的内联代码
self.slidery =tk.Scale(self.valuesframe, from_=-2.000, to=2.000,
    sliderlength=10, tickinterval=1, length=self.windowwidth -self.sliderresizer
    ,variable=1,label="Y",borderwidth=2,resolution=0.01,width=10, highlightthickness=10, digits=3, troughcolor="red", orient=tk.HORIZONTAL)
self.slidery.pack()
self.slidery.bind("<ButtonRelease-1>", self.GetSave("Y", self.slidery.get()))

GetSave()函数是绑定的,这是函数:

def GetSave (self,event,opt,val):
    print(opt +" : "+str(val))
    pass 

我收到的内容: TypeError:GetSave()缺少1个必需的位置参数:&#39; val&#39;

我改为:

self.slidery.bind("<ButtonRelease-1>", self.GetSave(event,"Y", self.slidery.get()))

还试过lambda:

self.sliderx.bind("<ButtonRelease-1>",lambda x:self.GetSave("X",self.sliderx.get()))

仍然是错误。

自我和事件自动传递给我知道的功能。 那我的代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

试试这个,我稍微更改了您的lambda

self.sliderx.bind("<ButtonRelease-1>",lambda event: self.GetSave(event, "X",self.sliderx.get()))