>백엔드 개발 >파이썬 튜토리얼 >Python에서 __name__ 값 테스트에 대한 자세한 소개

Python에서 __name__ 값 테스트에 대한 자세한 소개

高洛峰
高洛峰원래의
2017-03-19 14:01:481725검색

이 글에서는 Python에서 __ name__ 값을 테스트하는 내용을 주로 소개합니다.

테스트에 사용한 코드는 다음과 같습니다.

#test_name0.py
def test():
    return name

print name
print test()
import test_name1
test_name1.test()
rrree

python 인터프리터의 실행 명령과 결과는 다음과 같습니다.

#test_name1.py
def test():
    print name
    
print name
cmd에서

를 실행하면 결과는 다음과 같습니다. python test_name0.py

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
다음에서 확인할 수 있습니다.

(1) Python 최상위 인터프리터에서 또는 직접 실행 스크립트에서

name=='main'

(2) 호출된 모듈에서 name==<a href="http://%20www.php.cn/code/%208212.html" target="_blank">모듈<p> 이름</p></a>name==<a href="http://www.php.cn/code/8212.html" target="_blank">module</a> name (3) 스크립트를 누른 다음

, 또는 test_name0.py 다음에 import test_name0 스크립트를 실행하면 결과는 import test_name0

main
main
test_name1
test_name1
test_name0.py 또는
test_name0
test_name0
test_name1

또는

main
main
test_name1

가 됩니다. >

test_name0
test_name0
test_name1
test_name1
문제의 핵심을 정리한 후, Segmentfault에 대해 질문을 해서 문제의 원인을 알아냈습니다.

즉, Python 모듈에는

캐시

가 있습니다. 한 번 가져온 다음 다시 가져오면 모듈의 최상위 범위에 있는 코드가 다시 실행되지 않습니다.
(4) 두 모듈 test_name0과 test_name1의 test 함수

는 이름이 동일합니다. 모듈 이름이 다르기 때문에 두 테스트 함수를 구별할 수 있으므로 문제가 되지 않습니다. , 그러나 모듈 이름이 중복되지 않도록 하세요.

위 내용은 Python에서 __name__ 값 테스트에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.