Ich habe eine Bibliotheksklasse, abhängig davon, wie sie importiert wird, eine Methode, die auf dem self.__module__
für das Verhalten der Identitätsänderungen beruht - abhängig davon, ob ich sie relativ oder absolut importiere. Gibt es eine Möglichkeit, das self.__name__
-Attribut einer Klasse zu zwingen, sich absolut zurückzugeben?
Ich stelle fest, dass es eine Lösung wäre, alle zu zwingen, die Unterklassen auf die gleiche Weise zu importieren, aber ich frage mich, ob es eine Möglichkeit gibt, sie vom Standpunkt der Bibliothek aus zu erzwingen.
Zusammengefasste Struktur
Ich habe ein Modul in einer Bibliothek
%Vor% In mylib
habe ich einen Importeur, der alle Unterklassen von LibraryClass
über eine Zeichenkette des Klassennamens in die Einstellungsdatei unseres Django-Projekts importiert.
Grundsätzlich hängt das Verhalten, das wir sehen, davon ab, wie Sie importieren. Es gibt also zwei Verhaltensweisen, die ich in bar.py beobachte:
%Vor%Versus
%Vor% Ich vermute, dass das Richtige hier ist, niemals Eltern / Kind-Verzeichnisse im Python-Pfad zu haben. Ich vermute auch, dass dies unter Umständen nicht möglich ist. Je nachdem, was du tust, könntest du vielleicht .__file__
verwenden, was immer noch konsistent sein sollte, egal wie importiert es ist?
Tags und Links python