python-Modul __init__ - Funktion
Gibt es eine Möglichkeit, um eine implizite Initialisierung der Module (nicht Pakete)?
So etwas wie:
#file: mymodule.py
def __init__(val):
global value
value = 5
Und wenn Sie es importieren:
#file: mainmodule.py
import mymodule(5)
- Code wird in das "root" - ein Modul (nicht in einer Funktion) werden auf "importieren".
- Warum brauchen Sie, um dies zu tun? Globale Variablen sind in der Regel eine schlechte Idee.
- Ich kann nicht platzieren Sie den code außerhalb einer Funktion, weil ich brauche, um die Argumente. Im Grunde möchte ich das Modul auf eine Globale variable, die alle Methoden verwenden, und es wird übergeben, wenn ich initialisiert den Modul.
- Mögliche Duplikate von Pass Auf Variable Import
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
import
- Anweisung verwendet die builtin__import__
- Funktion.Daher ist es nicht möglich, ein Modul zu haben
__init__
Funktion.Müssen Sie nennen es selbst:
Diese Dinge, die oft nicht geschlossen werden, als Duplikate, also hier ist eine wirklich schöne Lösung von Pass Auf Variable Importieren. TL;DR: die Verwendung einer config-Modul konfigurieren, dass vor dem Import Modul.