关于变量__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()
View Code
 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()
View Code

A. 当你运行main.py时,输出如下


  

B. 当你运行test.py时,输出如下

  

4. 结论分析

  正如我们看到的结果一样,A实验中main.py里面import了test.test模块,因此在test.py中变量__name__的值为test.test,即模块的名字;B实验中test.py里变量变量__name__的值为__main__。

 

posted on 2016-11-16 15:18  HelloF  阅读(201)  评论(0编辑  收藏  举报

导航