[PYTHON] Comment accéder à la variable globale du module importé

Lorsque j'ai apporté des modifications au groupe de scripts hérité, j'avais besoin d'un test, mais si j'écrivais du code unittest pour un script avec uniquement des fonctions sans classe, j'ai rencontré un test de fonction utilisant une variable globale et je ne pouvais pas le déclarer globalement. Allons-y! J'ai eu l'erreur.

※ Python2.7

Courir

test_aaa.py


import aaa_module

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

Erreur

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

Il n'y a pas d'enregistreur. Il y a.

aaa_module.py


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

Déclaré avec global. Il y a.

Déclaration globale (illusion)

Je ne pouvais pas m'en empêcher, alors j'ai essayé ce qui suit du côté le plus simple.

Courir

test_aaa.py


import aaa_module

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

Erreur

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

ne change pas. Pourquoi ...

Il n'y avait pas de variable globale en Python

Référence: En Python, il n'y a pas de variables globales, pour être exactes, dans le module. c'est ça?

Comment accéder aux variables dans le module

module.global variable = valeur

Courir

test_aaa.py


import aaa_module

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

Il y a encore de nombreuses inconnues en Python

Recommended Posts

Comment accéder à la variable globale du module importé
Comment utiliser le module optparse
Comment utiliser le module ConfigParser
(Note) Comment passer le chemin de votre propre module
Comment vérifier la version de Django
Passez le chemin du module python importé
Comment vérifier la taille de la mémoire d'une variable en Python
Comment accéder à la banque de données de l'extérieur
Comment calculer la volatilité d'une marque
Comment trouver la zone du diagramme de Boronoi
Comment identifier de manière unique la source d'accès dans la vue de classe générique Django
[NNabla] Comment obtenir la sortie (variable) de la couche intermédiaire du réseau construit
Comment connaître le numéro de port du service xinetd
Comment obtenir le nom de la variable lui-même en python
Comment exécuter le module Ansible ajouté dans Ansible Tower
Comment obtenir le nombre de chiffres en Python
Comment utiliser Raspeye Relay Module Python
La décision de scikit-learn Comment visualiser un modèle en bois
[Blender] Comment définir dynamiquement les sélections EnumProperty
[Python] Résumé de la façon de spécifier la couleur de la figure
Comment frapper le document de Magic Function (Line Magic)
[Selenium] Comment spécifier le chemin relatif de chromedriver?
Note Python: Le mystère de l'attribution d'une variable à une variable
Comment éviter l'étiquette de coupure du graphique créé par le module système de tracé à l'aide de matplotlib
Comment utiliser le générateur
Comment débloquer Pyenv Global
Comment utiliser le décorateur
Comment augmenter l'axe
Comment démarrer la première projection
Comment augmenter la vitesse de traitement de l'acquisition de la position des sommets
[Ubuntu] Comment supprimer tout le contenu du répertoire
Comment trouver le nombre optimal de clusters pour les k-moyennes
Comment tester les attributs ajoutés par add_request_method de pyramid
Facilitez la compréhension de l'affichage des exceptions du module Python
Comment calculer la quantité de calcul appris de ABC134-D
Comment résumer les résultats de FreeSurfer ~ aparc, aseg, wmparc ~
Comment exécuter automatiquement la fonction d'exportation de GCP Datastore
Accrocher à la première importation du module et imprimer le chemin du module
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
Comment voir le contenu du fichier ipynb du notebook Jupyter
Comment connecter le contenu de la liste dans une chaîne de caractères
Comment calculer le coefficient d'autocorrélation
Tester la version du module argparse
Comment utiliser la fonction zip
[sh] Comment stocker les résultats de l'exécution de la commande dans des variables
Comment déterminer l'existence d'un élément sélénium en Python
Comment modifier le niveau de journalisation d'Azure SDK pour Python
Comment implémenter du code Java en arrière-plan de Red Hat (Linux ONE)
Comment connaître la structure interne d'un objet en Python
Résumé de l'utilisation de pandas.DataFrame.loc
Comment changer la couleur du seul bouton pressé avec Tkinter
[EC2] Comment installer Chrome et le contenu de chaque commande
Créez le thème de Pythonista 3 comme Monokai (comment créer votre propre thème)
Comment utiliser le module de journalisation de Python
[Python] Comment obtenir le premier et le dernier jour du mois
Résumé de l'utilisation de pyenv-virtualenv
Comment obtenir la version Python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
[TensorFlow 2] Comment vérifier le contenu de Tensor en mode graphique