__name__

__name__ 是 python 的一个内置变量,它的值等于 '__main__' ,如下:

[root@localhost ~]$ cat talk.py   
#!/usr/bin/env python
#-*- coding:utf-8 -*-

print __name__
[root@localhost ~]$ python talk.py 
__main__

如果被当做模块导入,它的值等于模块名本身,如下:

[root@localhost ~]$ cat think.py 
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import talk
[root@localhost ~]$ python think.py 
talk

基于这个特性,我们可以这样来写脚本:

(1) 如下,当执行 talk.py 脚本时,__name__ 的值会等于 '__main__' ,因此 talk() 函数会被执行
(2) 当该脚本被作为模块导入时,__name__ 的值不等于 '__main__' ,因此相当于只导入了函数而不执行函数,等到要执行的时候再自行调用

[root@localhost ~]$ cat talk.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-

def talk():
    print 'My name is Tom'
    print 'My age is 23'
    print 'I am talking...'

if __name__ == '__main__':
    talk()
[root@localhost ~]$ cat think.py 
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import talk

 

 

 

 

 

 

    

posted @ 2019-01-17 19:59  孔雀东南飞  阅读(335)  评论(0编辑  收藏  举报