__name__ 和 "__main__"

2018-08-04

本模块名: person
调用者模块名: start

import sys
def funcperson():
	print('我是人')
	print(sys.modules[__name__])        # <module '__main__' from 'C:/Users/SATH/Desktop/testtest/aaa/core/person.py'>
	print(__name__)                              # __main__
	print(sys.modules['__main__'])      # <module '__main__' from 'C:/Users/SATH/Desktop/testtest/aaa/core/person.py'>

funcperson()

# 当被其他模块调用时:
# <module 'aaa.core.person' from 'C:\\Users\\SATH\\Desktop\\testtest\\aaa\\core\\person.py'>
# aaa.core.person
# <module '__main__' from 'C:/Users/SATH/Desktop/testtest/aaa/bin/start.py'>

___name__ 永远都自己的模块名或"__mian__"
"__main__"
		# 1. 自己调用: print(sys.modules[__name__])          输出自己的模块名
		#                    print(__name__)                                输出"__main__"
		# 					  print(sys.modules['__main__'])          输出自己的模块名

		# 2. 被人调用: print(sys.modules[__name__])         输出自己的模块名
		#                    print(__name__)                              aaa.core.person
		#                    print(sys.modules['__main__'])        调用者的模块名

  

猜你喜欢

转载自www.cnblogs.com/594504110python/p/9419445.html