Ich erhalte eine Ausnahme, die ein Problem mit meiner Vererbungsstruktur impliziert, kann aber das Problem nicht herausfinden.Klassenvererbungsproblem bei der Verwendung von tkinter
import tkinter as tk
class Game(tk.Tk):
class Period(tk.Frame, Game):
class PeriodSummary(tk.Frame,Period):
Dies gibt dem excpetion:
Traceback (most recent call last):
File "tkinter_test.py", line 4, in <module>
class PeriodSummary(tk.Frame,Period):
TypeError: Cannot create a consistent method resolution
order (MRO) for bases Frame, Period
Deshalb möchte ich Period
haben Attribute von Game
zu erben, und PeriodSummary
Attribute von Period
zu erben. Warum ist das nicht möglich?
Es sieht so aus, als ob Sie ein grundlegendes Missverständnis haben, wie Vererbung funktioniert. Warum muss 'PeriodSummary' von diesen anderen Klassen erben? Warum ist eine "Periode" auch ein "Spiel", anstatt Teil eines Spiels zu sein? Was glaubst du, was das bewirkt? –
Ein 'Spiel' hat viele' Perioden'. Nachdem jede Periode gespielt wurde, möchte ich, dass dort ein 'PeriodSummary'-Frame erscheint. 'Periode' erbt von' Spiel', weil es Attribute benötigt, aber auch unterschiedliche Attribute hat. – splinter
Lesen Sie, was Sie gerade geschrieben haben: ein Spiel _has_ viele Perioden. Jede Periode ist kein _also_ ein Spiel, was dein Erbe sagt. Ein "Game" -Objekt sollte mehrere "Period" -Objekte als Attribute haben. Sie möchten die Vererbung nicht verwenden, nur weil Sie Daten gemeinsam nutzen müssen. –