Erstes importierte Module herausfinden.

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.
Antworten
Benutzeravatar
zizou2981
User
Beiträge: 59
Registriert: Donnerstag 23. Juni 2011, 21:46

Hallo Zusammen,

ich möchte gern wissen, wie man das Modul, das zuerst in einem Script importiert wurde, herausfinden kann.
Beispiel:

Code: Alles auswählen

from A import A
from B import B
Class C(A, B):
     pass
=> wie kann ich hier mit python herausfinden, dass das Modul A zuerst importiert wurde?
BlackJack

@zizou2981: Gar nicht‽ Warum will man so etwas wissen?
Benutzeravatar
zizou2981
User
Beiträge: 59
Registriert: Donnerstag 23. Juni 2011, 21:46

@BlackJack: ich weiss, dass die Frage etwas blöd scheint, aber mein Hauptproblem ist, dass ich die Vererbungshierarchie bei jedem Aufruf der Klasse C automatisch einstellen möchte.

Fall 1:

Code: Alles auswählen

from A import A
from B import B
Class C(A, B):
     pass
Fall 2:

Code: Alles auswählen

from B import B
from A import A
Class C(B, A):
     pass
=> Hier möchte gern eine andere Frage stellen. Für Methoden gibt es die magische Argumente (*args und **kwargs). Gibt es für Klassen sowas ähnliches?
lunar

@zizou2981: Nein. Wozu in aller Welt brauchst Du das? Ich kann nicht umhin zu vermuten, dass Du ein ziemlich fundamentales Problem im Entwurf Deiner Anwendung hast.

Klassen und ihre Vererbungshierarchie solltest Du ‒ mit ganz wenigen Ausnahmen ‒ als statisch betrachten, und insbesondere nicht auf magische Weise von der Umgebung abhängig machen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Da kann man nur BlackJacks Frage wiederholen: Wozu ist dabei die Reihenfolge des Imports wesentlich?

Ich würde ja sogar noch weiter gehen und sagen: Die Reihenfolge sollte da keine Rolle spielen, da der Code damit ziemlich anfällig für Fehler werden dürfte...

Vielleicht erklärst Du uns doch mal mehr das Gesamtproblem. Ich denke hier liegt vermutlich ein XY-Problem vor, bei dem es sich nicht weiter lohnt, nach einer wie auch immer gearteten "Lösung" zu suchen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten