Holen Sie sich das aktuelle Python-Modul-Objekt (nach Name oder auf andere Weise)

Wenn ich das aktuelle Modul bekommen möchte, zB um es neu zu laden, würde ich:

import sys sys.modules[__name__] 

Gibt es einen besseren Weg, dies zu tun (zB nicht mit __name__ )? Besser in diesem Kontext bedeutet mehr idiomatisch, tragbarer, robuster oder mehr … irgendwelche der anderen Dinge, die wir normalerweise in unserer Software wünschen.

  • Mehrfache Matrixmultiplikation
  • Unterschied zwischen zwei Produkten, die null sind: Nicht-Brute-Force-Lösung?
  • Einen Session Store auf Redis für einen Django und eine Express.js Applikation zu teilen
  • Text-Mine PDF-Dateien mit Python?
  • Entdecken Sie identisch angrenzende Strings mit Regex und Python
  • Hinzufügen von fehlenden Schlüsseln im Wörterbuch in Python
  • Ich benutze python 2, aber antworten für python 3 wird zweifellos nützlich für andere sein.

  • Objektbasierter Standardwert in SQLAlchemy deklarativ
  • Python 3.2 globale Variable nicht aktualisiert, wenn seine in einem Thread
  • Wie man alle Zeilen in python-Konsole in vim ausgeben?
  • Python - wie man die Berechnung der Distanzen zwischen den Städten beschleunigt
  • Wie zu flachen Kopie App-Engine-Modell Instanz, um neue Instanz zu erstellen?
  • Python: Finden Sie das Wort, das am meisten auftaucht?
  • One Solution collect form web for “Holen Sie sich das aktuelle Python-Modul-Objekt (nach Name oder auf andere Weise)”

    Es gibt keine idiomatische Methode, um das aktuelle sys.modules aus sys.modules als das, was du benutzt hast.

    __name__ wird von Python beim Import gesetzt, im Wesentlichen:

     module_object = import_py_file(import_name) module_object.__name__ = import_name sys.modules[import_name] = module_object 

    So ist die __name__ Referenz genau das , was du hier verwenden möchtest.

    Python ist die beste Programmiersprache der Welt.