Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Ich habe versucht anhand dieses Artikels ein Plugin System zu realisieren.
Das Problem ist dass die Plugin Klasse keine weiteren subklassen bekommt wenn ich mein Plugin importiere. Welches wie im Tutorial von der Plugin Klasse erbt.
Hm, wenn ich das ganze als Modul importiere funktioniert es einwandfrei
Das stört mich jetzt nicht weiter aber mich würde schon der Grund interessieren.
DasIch hat geschrieben:Hm, wenn ich das ganze als Modul importiere funktioniert es einwandfrei
Das stört mich jetzt nicht weiter aber mich würde schon der Grund interessieren.
Ich hab keine Ahnung, warum das so sein könnte, aber ganz sicher, dass du nicht noch irgendeine andere Kleinigkeit geändert hast?
Aber ansonsten hatte ich auch irgendwann mal ein komisches Erlebnis, da war's aber genau andersrum, es funktionierte nur mit einem from import
In Zeile 44 musste das `not` weg, deswegen wurde eine leere Liste an `load` übergeben. Das hat aber das Problem trotzdem nicht gelöst. Im Tutorial wird das ganze auch in einer Python Shell demonstriert, hätte ich schon vorher mal testen sollen.
Da ich das ganze natürlich noch etwas erweitern werde etc. wird es sicherlich nicht schaden das ganze als Modul zu lassen. Insofern ist stellt das ganze jetzt für mich kein akutes Problem mehr dar.
Wie gesagt wäre es trotzdem interessant den Grund zu wissen.
Wenn du das direkt ausführst, wird das Modul als ``__main__`` geladen. Das Plugin importiert das ``plugin_loader``-Modul. ``plugin_loader`` wurde vorher jedoch als ``__main__`` importiert, wird also noch einmal als ``plugin_loader`` geladen. Und `plugin_loader.Plugin` ist nun halt mal nicht `__main__.Plugin`. Würde das Plugin ``from __main__ import Plugin`` machen, würde das erwartete Verhalten auftreten.