tkinter从单独的类中调用祖父母实例变量出现错误

时间:2019-02-13 03:13:26

标签: python-3.x tkinter parent-child instance-variables super

如何从“课堂日”访问实例变量“ self.data = 42”?

这是我较大的GUI程序中最简单的形式,因此请忽略弹出的窗口。我正在研究它的数据逻辑,但我不知道如何访问此变量。

我需要的是能够打印(f从类Day {self.parent.data}中获取”),错误显示“ AttributeError:'Week'对象没有属性'data'”,这是合乎逻辑的因为“课堂日”是“课堂周”的组成部分(这是为我的GUI建立的“具有”关系而设计的)。

我尝试创建另一个实例“ self.day1 = Day(self)”,但该实例无效。我也曾尝试对“ Class Day(tk.Frame,Application):”进行分类,以查看是否可以继承数据,但仍然存在相同的错误。

如果有人可以帮助我完成这项工作,这将使我更好地理解super()/ composition。

再次感谢您的协助。

import tkinter as tk
from tkinter import ttk


class Application(tk.Tk):
    def __init__(self):
        super().__init__()

        self.data = 42

        self.week1 = Week(self)


class Week(tk.Frame):
    def __init__(self, parent):
        super().__init__(parent)
        self.parent = parent

        self.day1 = Day(self)

        print ( f"from class Week {self.parent.data}")

class Day(tk.Frame):
    def __init__(self, parent):
        super().__init__(parent)
        self.parent = parent

#        print ( f"from class Day {self.parent.data}")

if __name__ == '__main__':
    Application().mainloop()

0 个答案:

没有答案