This article mainly introduces the detailed introduction of the test of __ name__ value in python
The code used in the test is as follows:
#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
At the top level of python The execution command and result in the interpreter are as follows:
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
Execute python test_name0.py
in cmd, the result is as follows:
main main test_name1 test_name1
It can be seen from this:
(1) In the python top-level interpreter or a directly run script name=='main'
(2) In the called module name==<a href="http://www.php.cn/code/8212.html" target="_blank">module</a> name
(3) An unexpected situation was discovered, that is, after running the test_name0.py
script, import test_name0
, or import test_name0
and then run the test_name0.py
script, the result will be
test_name0 test_name0 test_name1
or
main main test_name1
instead of
test_name0 test_name0 test_name1 test_name1
or
main main test_name1 test_name1
sorted out the key points of the problem and asked the question on segmentfault, and found out the reason for this problem.
That is: the python module has a cache. If you import it once and then import it again, the code in the top scope of the module will not be executed again.
(4) The testfunction in the two modules test_name0 and test_name1 has the same name. This is not a problem because the two test functions can be distinguished because the module names are different. , but avoid duplicate names of modules.
The above is the detailed content of Detailed introduction to testing __name__ value in python. For more information, please follow other related articles on the PHP Chinese website!