Wie machen die weltweiten Importe von einer Funktion?

Befürchte ich, dass dies ist eine schmutzige Art und Weise zu nähern, das problem aber...

lassen Sie uns sagen, dass ich möchte, um einige Importe in Python, basierend auf bestimmten Bedingungen.

Aus diesem Grund möchte ich eine Funktion schreiben:

def conditional_import_modules(test):
    if test == 'foo':
        import onemodule, anothermodule
    elif test == 'bar':
        import thirdmodule, and_another_module
    else:
        import all_the_other_modules

Nun, wie kann ich die importierten Module, die weltweit verfügbar?

Beispiel:

conditional_import_modules(test='bar')
thirdmodule.myfunction()
  • Können Sie erklären, den genauen Anwendungsfall für diese?
  • scheint, wie Sie konnte einfach importieren Sie Sie alle, dann verwenden Sie nur die Module, die Sie benötigen
  • Ich nehme an, du meintest == in Ihren Bedingungen
  • Ich habe nicht einen echten use-case (das heißt, ich kann lösen Sie in einer anderen Art und Weise), aber diese Frage kam in meinem Kopf, während ich schrieb einige code zu importieren, Blaupausen basiert auf einer Konfigurationsdatei, die im Kolben web-Anwendung. Ich dachte an eine Funktion schreiben, um die Importe, und die anderen, diese zu registrieren.
  • Ops... die Finger sind schneller als das Gehirn... (korrigiert)
  • ein real-world use case: ein python-app, die ist Optional in der Lage, zeichnen ein Diagramm mit matplotlib.pyplot. Unbedingt importieren, das Modul kann auf einigen Systemen fehlschlagen, weil es nicht installiert ist, oder wenn es installiert ist, lädt alle installiert backends, darunter auch einige, die vielleicht X oder tkinter, was wiederum fehlt, was zu einem Abbruch aufgrund einer ausgelösten Ausnahme. So macht es Sinn, nur importieren, wenn der Benutzer eigentlich fordert das erstellen einer plot.

Schreibe einen Kommentar