[python]谈谈 if __name__ == '__main__'

来源:互联网 发布:天刀慕情捏脸数据 编辑:程序博客网 时间:2024/06/06 19:24

先说说__name__是什么

__name__是个变量,双下划线开头结尾的变量,可不是一般的变量哦,是系统的变量。

这个变量的值是什么呢?分两种情况:

情况1)在可以直接执行的脚本内,它的值是__main__

情况2)  在被import到其他文件内时,它的值就是文件的名字。


觉不觉得它就是中文语法里面的指示代词呢?

在自己称呼时叫做“我”(__main__)

在别人称呼时叫做“张三”/“李四”,反正就是它的名称了。


看一个例子

#test.py 文件的内容


#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys

def func_1():
    print "function is %s"%__name__

if __name__ == '__main__':
    func_1()


#import_t.py文件的内容 
#!/usr/bin/python
# -*- coding: utf-8 -*-

from test import func_1

func_1()


运行的结果:

[work@bjyz-liurong ~]$ python test.py
function is __main__    直接执行的文件内,它的值就是__main__
[work@bjyz-liurong ~]$ python import_t.py 
function is test    被import之后,它的值就是所在的文件名字

再说下if __name__ == '__main__':有什么作用

从上面不难看出,有了这个if 条件后,if __name__ == '__main__':下面的语句只能在直接执行的脚本里运行。当该文件被import时,if __name__ == '__main__':下面的语句是根本不会执行的哦。  懂了吧

原创粉丝点击