Get self .__ module__ der Klasse, unabhängig davon, wie importiert

8

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%     
dmyung 04.11.2012, 02:15
quelle

1 Antwort

2

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?

    
Cory 05.11.2012, 19:55
quelle

Tags und Links