Kann man in Python überladen / importieren?

8

Ist es möglich, die from / import-Anweisung in Python zu überladen?

Wenn beispielsweise jvm_object eine Instanz der Klasse JVM ist, ist es möglich, diesen Code zu schreiben:

%Vor%     
Barthelemy 13.10.2010, 21:08
quelle

2 Antworten

7

Dieser Beitrag demonstriert, wie die in PEP-302 , um Module über das Internet zu importieren. Ich poste es als ein Beispiel für die Anpassung der Import-Anweisung statt als vorgeschlagene Verwendung;)

    
aaronasterling 13.10.2010, 21:22
quelle
3

Es ist schwer etwas zu finden, was in einer dynamischen Sprache wie Python nicht möglich ist, aber müssen wir wirklich alles missbrauchen? Wie auch immer, hier ist es:

%Vor%

Aber ein Muster, das ich in mehreren Bibliotheken / Projekten gesehen habe, ist eine Art _make_module() -Funktion, die dynamisch ModuleType erzeugt und alles darin initialisiert. Danach wird das aktuelle Modul durch das neue Modul ersetzt (mit der Zuweisung zu sys.modules ) und die Funktion _make_module() wird gelöscht. Der Vorteil besteht darin, dass Sie das Modul über das Modul schleifen und sogar dem Modul innerhalb dieser Schleife Objekte hinzufügen können, was manchmal sehr nützlich ist (aber verwenden Sie es mit Vorsicht!).

    
tux21b 13.10.2010 21:27
quelle