需要帮助Python中的Classes

时间:2011-02-24 02:04:55

标签: python class module import tkinter

我正在制作一个导入自定义窗口小部件的程序(它继承自Tkinter Frame窗口小部件)。这一切都很有效,直到我达到约束力。为了减少混淆,我们将调用主应用程序应用程序,它从lib导入窗口小部件的模块,以及导入到应用程序的窗口小部件将被称为cwid。

基本上我需要以某种方式在app中引用一个函数,以便它可以绑定到我在lib中的widget。

我正在尝试将cwid中的小部件绑定到的元素是element_click(函数element_click在app中):

lambda event: element_click(event, elementinfo[3])

因此绑定在lib中看起来像这样(元素是cwid中的画布小部件)

element.bind('<ButtonRelease-1>', lambda event: element_click(event, elementinfo[3]))

上面的行不会工作,但是看到element_click在app中。所以我尝试了一个似乎没有工作的工作。

import app

loc = app.EOG

element.bind('<ButtonRelease-1>', lambda event: loc.element_click( event, elementinfo[3]))

当我尝试上述操作时,我收到以下错误:

TypeError: unbound method element_click() must be called with EOG instance as first argument (got Event instance instead)

EOG是app中的一个类,其中包含element_click。

此外,所有上述代码都是片段。

修改

尝试了loc = app.EOG(),并出现以下错误:

AttributeError: EOG instance has no attribute '__nonzero__'

1 个答案:

答案 0 :(得分:2)

我想你只是想:

loc = app.EOG()

然后,loc是EOG的实例loc.element_click是绑定方法,因此它按预期工作。