【发布时间】:2017-06-02 11:19:59
【问题描述】:
我是 Python 类的新手,正在尝试通过 Tkinter 为科学代码编写接口。但是我不能从一个类或函数中调用一个函数(它在另一个类中并打开一个不同的框架)。我一直在寻找超过 2 天,但找不到我的案例的答案。如果您像解释孩子一样解释,我会很高兴,因为我不了解太多技术细节。
我的代码结构是这样的:
class first_class(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
....
def WhateverFunction():
"do sth"
class second_class(tk.Tk):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
.....
**I want to use "WhateverFunction" here**
.....
所以基本上,我无法从另一个类访问该函数。
我在网上找到的搜索类似Python using methods from other classes 方法。 Bu 这并没有解决我的问题。这可能是因为我正在使用不同的 Tkinter 框架。我现在没有...谢谢,干杯!
【问题讨论】:
-
如果您想使用该功能,您需要从您创建的第一个类继承。
class second_class(first_class):或从first_class().WhateverFunction()中调用类方法 -
WhateverFunction是否需要成为first_class的方法?注意:您的 sn-p 缩进方式,WhateverFunction实际上是在first_class.__init__中定义的,因此只能在first_class.__init__中访问 -
@brunodesthuilliers 啊...已将其归结为复制/粘贴或缩进错误。但是,是的,这会在某种程度上改变任何可能的答案
-
您不能拥有两个
tk.Tk实例(或两个继承自tk.Tk的事物的实例)。为什么必须有两个类,每个类都继承自tk.Tk? -
@BryanOakley 这是评论的第二部分,但是“你需要...”是不正确的。