如何从“课堂日”访问实例变量“ 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()