[PYTHON] So greifen Sie auf die globale Variable des importierten Moduls zu

Als ich Änderungen an der Legacy-Skriptgruppe vorgenommen habe, war ein Test erforderlich. Wenn ich jedoch unittest Code für ein Skript mit nur Funktionen ohne Klasse schrieb, stieß ich auf einen Funktionstest mit einer globalen Variablen und konnte ihn nicht global deklarieren. Lass uns gehen! Ich habe den Fehler bekommen.

※ Python2.7

Lauf

test_aaa.py


import aaa_module

class TestAAA(unittest.TestCase):
    def test_aaa
        aaa_module.aaa_func()

Error

...
NameError: global name 'logger' is not defined

Es gibt keinen Logger. Es gibt.

aaa_module.py


if __name__ == '__main__':
    logger = logging.getLogger('...')

Mit global deklariert. Es gibt.

Globale Erklärung (Täuschung)

Ich konnte nicht anders, also versuchte ich Folgendes auf der unittesten Seite.

Lauf

test_aaa.py


import aaa_module

class TestAAA(unittest.TestCase):
    def test_aaa
        global logger
        logger = logging.getLogger('...')
        aaa_module.aaa_func()

Error

...
NameError: global name 'logger' is not defined

ändert sich nicht. Warum ...

In Python gab es keine globale Variable

Referenz: In Python gibt es keine globalen Variablen, um genau zu sein, modulinterne Variablen. ist es?

Zugriff auf modulinterne Variablen

module.global variable = value

Lauf

test_aaa.py


import aaa_module

class TestAAA(unittest.TestCase):
    def test_aaa
        aaa_module.logger = logging.getLogger('...')
        aaa_module.aaa_func()

Es gibt noch viele Unbekannte in Python

Recommended Posts

So greifen Sie auf die globale Variable des importierten Moduls zu
Verwendung des optparse-Moduls
Verwendung des ConfigParser-Moduls
(Hinweis) So übergeben Sie den Pfad Ihres eigenen Moduls
So überprüfen Sie die Version von Django
Übergeben Sie den Pfad des importierten Python-Moduls
So überprüfen Sie die Speichergröße einer Variablen in Python
So greifen Sie von außen auf den Datenspeicher zu
So berechnen Sie die Volatilität einer Marke
So finden Sie den Bereich des Boronoi-Diagramms
So identifizieren Sie die Zugriffsquelle in der generischen Klassenansicht von Django eindeutig
[NNabla] So erhalten Sie die Ausgabe (Variable) der mittleren Schicht des erstellten Netzwerks
Wie man die Portnummer des xinetd-Dienstes kennt
So erhalten Sie den Variablennamen selbst in Python
Ausführen des in Ansible Tower hinzugefügten Ansible-Moduls
So ermitteln Sie die Anzahl der Stellen in Python
Verwendung von Raspeye Relay Module Python
Die Entscheidung von scikit-learn Wie man ein Holzmodell visualisiert
[Blender] So legen Sie die Auswahlelemente von EnumProperty dynamisch fest
[Python] Zusammenfassung, wie die Farbe der Figur angegeben wird
Wie man das Dokument der magischen Funktion (Linienmagie) trifft
[Selen] Wie wird der relative Pfad des Chromedriver angegeben?
Python Hinweis: Das Rätsel, einer Variablen eine Variable zuzuweisen
So vermeiden Sie die Cut-Off-Beschriftung des Diagramms, das vom Plotsystemmodul mit matplotlib erstellt wurde
Verwendung des Generators
So entsperren Sie pyenv global
Wie benutzt man den Dekorateur?
So erhöhen Sie die Achse
So starten Sie die erste Projektion
So erhöhen Sie die Verarbeitungsgeschwindigkeit der Erfassung der Scheitelpunktposition
[Ubuntu] So löschen Sie den gesamten Inhalt des Verzeichnisses
So finden Sie die optimale Anzahl von Clustern für k-means
So testen Sie die Attribute, die durch add_request_method of pyramid hinzugefügt wurden
Erleichtern Sie die Anzeige von Python-Modulausnahmen
Berechnen des aus ABC134-D gelernten Rechenaufwands
Wie man die Ergebnisse von FreeSurfer ~ aparc, aseg, wmparc ~ zusammenfasst
So führen Sie die Exportfunktion des GCP-Datenspeichers automatisch aus
Schließen Sie den ersten Import des Moduls an und drucken Sie den Modulpfad
So erhöhen Sie die Anzahl der Datensatzbilder für maschinelles Lernen
So sehen Sie den Inhalt der ipynb-Datei des Jupyter-Notizbuchs
So verbinden Sie den Inhalt der Liste mit einer Zeichenfolge
Wie berechnet man den Autokorrelationskoeffizienten?
Testen Sie die Version des Argparse-Moduls
Verwendung der Zip-Funktion
[sh] Das Speichern der Befehlsausführung führt zu Variablen
So bestimmen Sie die Existenz eines Selenelements in Python
So ändern Sie die Protokollstufe von Azure SDK für Python
So implementieren Sie Java-Code im Hintergrund von Red Hat (Linux ONE)
Wie Sie die interne Struktur eines Objekts in Python kennen
Zusammenfassung der Verwendung von pandas.DataFrame.loc
So ändern Sie die Farbe nur der mit Tkinter gedrückten Taste
[EC2] So installieren Sie Chrome und den Inhalt jedes Befehls
Erstellen Sie das Thema von Pythonista 3 wie Monokai (wie Sie Ihr eigenes Thema erstellen)
Verwendung des Python-Protokollierungsmoduls
[Python] So erhalten Sie den ersten und den letzten Tag des Monats
Zusammenfassung der Verwendung von pyenv-virtualenv
So erhalten Sie die Python-Version
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
[TensorFlow 2] So überprüfen Sie den Inhalt von Tensor im Diagrammmodus