Cet article présente principalement les détails du test de la valeur __ name__ en python
Le code utilisé dans le test est le suivant :
#test_name0.py def test(): return name print name print test() import test_name1 test_name1.test()
#test_name1.py def test(): print name print name
in Le La commande d'exécution et le résultat dans l'interpréteur de haut niveau python sont les suivants :
In [1]: type(name) Out[1]: str In [2]: print name Out[2]: main In [3]: import test_name0 test_name0 test_name0 test_name1 test_name1
Exécuter python test_name0.py
dans cmd, le résultat est le suivant :
main main test_name1 test_name1
Il peut être vu à partir de ceci :
(1) Dans l'interpréteur python de niveau supérieur ou dans un script exécuté directement name=='main'
(2) Dans le module appelant name==module<code>name==<a href="//m.sbmmt.com/code/8212.html" target="_blank">module</a> name
nom
(3) Si une situation inattendue est trouvée , il exécute test_name0.py
script puis import test_name0
, ou import test_name0
puis exécute le script de test_name0.py
, le résultat sera
test_name0 test_name0 test_name1
ou
main main test_name1
au lieu de
test_name0 test_name0 test_name1 test_name1
ou
main main test_name1 test_name1
a organisé les points clés du problème et posé la question sur segmentfault pour comprendre la raison de ce problème.
C'est-à-dire : le module python a un cache Si vous l'importez une fois puis l'importez à nouveau, le code dans la portée de niveau supérieur du module ne sera pas exécuté à nouveau.
(4) La fonction test dans les deux modules test_name0 et test_name1 a le même nom Ce n'est pas un problème car les deux fonctions de test peuvent être distinguées car les noms des modules sont différents. , mais évitez les noms de modules en double.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!