tkinter вызывает переменную экземпляра grandparents из отдельного класса с ошибкой - PullRequest
0 голосов
/ 13 февраля 2019

Как я могу получить доступ к переменной экземпляра "self.data = 42" из "class Day"?

Это самая простая форма моей большой программы с графическим интерфейсом, поэтому, пожалуйста, игнорируйте всплывающее окно.Я работаю над логикой данных и не знаю, как получить доступ к этой переменной.

Что мне нужно, чтобы иметь возможность печатать (f "из класса Day {self.parent.data}"), ошибка говорит: "AttributeError: у объекта 'Week' нет атрибута 'data'",что логично, потому что «День класса» является составной частью «Недели класса» (это разработано для моей настройки графического интерфейса «имеет» отношение).

Я пытался создать еще один экземпляр "self.day1 = Day (self)", который не работал.Я также попытался "День класса (tk.Frame, Приложение):", чтобы увидеть, могу ли я наследовать данные, но все еще имеет ту же ошибку.

Если кто-то может помочь мне сделать эту работу, это позволит мне лучше понять супер () / композицию.

Еще раз спасибо за вашу помощь.

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()
...