关于变量__name__的理解
__name__
1. 基本含义
如果是放在Modules模块中,就表示是模块的名字;
如果是放在Classs类中,就表示类的名字;
2. 模块中的意义
这里重点说一下模块中的意义,这个用法在python中非常常见。若模块是被导入的(import),则__name__的值为模块名字;若模块是被直接执行的,__name__ 的值为‘__main__’
3. 示例
1 ## main.py 2 3 import test.test 4 5 def get_name(): 6 print '__name__ = ', __name__ 7 8 if __name__ == '__main__': 9 print "**** main ****" 10 get_name() 11 12 if __name__ == 'test.test': 13 print "**** test ****" 14 get_name()
1 ## test/test.py 2 3 def get_name(): 4 print '__name__ is ', __name__ 5 6 if __name__ == '__main__': 7 print "---- main ----" 8 get_name() 9 10 if __name__ == 'test.test': 11 print "---- test ----" 12 get_name()
A. 当你运行main.py时,输出如下
B. 当你运行test.py时,输出如下
4. 结论分析
正如我们看到的结果一样,A实验中main.py里面import了test.test模块,因此在test.py中变量__name__的值为test.test,即模块的名字;B实验中test.py里变量变量__name__的值为__main__。