Home  >  Article  >  Backend Development  >  Detailed introduction to testing __name__ value in python

Detailed introduction to testing __name__ value in python

高洛峰
高洛峰Original
2017-03-19 14:01:481665browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn