@MarcelF6: Fehlermeldungen bitte am besten komplett 1:1 hier rein kopieren und den gesamten Quelltext zeigen.
Hast Du die beiden Quelltextfragmente in verschiedenen Dateien? Und die ``import``-Anweisungen hier nicht einfach nur weg gelassen, sondern auch tatsächlich keine im Quelltext? Im ersten Quelltextfragment wird `Child` ja nirgens definiert, also bekommt man da eine Ausnahme.
Falls beide Fragmente in verschiedenen Dateien stehen sollten, dann müssten die sich gegenseitig importieren, was zu Problemen führt wenn man nicht ganz genau weiss was man da macht und in welcher Reihenfolge dann der Code auf Modulebene ausgeführt wird. In der Regel sind zwei Module die sich gegenseitig benötigen ein Zeichen dafür, dass man entweder nur ein Modul mit dem Inhalt von beiden haben möchte, oder dass man gemeinsame Abhängigkeiten in ein weiteres Modul auslagern sollte.
In `tok()` erst eine Zeichenkette zusammensetzen, um die gleich danach mit `split()` wieder zu teilen, sieht ein wenig umständlich aus. Man sollte auch nicht Zeichenketten durch wiederholtes ``+`` oder ``+=`` zusammen setzen, denn da werden im schlechtesten Fall immer wieder neue Zeichenketten erstellt und die Daten unnötig im Speicher herum kopiert. Idiomatischer wäre es die Teilzeichenketten beispielsweise in einer Liste zu sammeln und dann die `join()`-Methode auf Zeichenketten zu verwenden, um am Ende eine Zeichenkette aus den Teilen zu erstellen.
Im `Child` verstehe ich nicht so ganz was `is_imported` und die Abfrage danach auf Klassenebene zu suchen haben!?
In `_auseinander()` wirst Du einen `AttributeError` bekommen, weil die `super()`-Funktion anders verwendet wird. Ich persönlich würde von `super()` die Finger lassen, denn man braucht es nur bei Mehrfachvererbung und man holt sich ziemlich viel Komplexität ins Boot verglichen mit einem einfachen ``Father._auseinander(self, char)``. Siehe auch
http://fuhm.net/super-harmful/