您的位置:首页 > 编程语言 > Python开发

if __name__ == '__main__'到底干了什么?(关键词:Python、__name__、__main__)

2017-08-11 22:07 609 查看
一句话:

    1.在导入本模块时,防止模块的代码被执行两次。(补充说明:模块就是.py文件)

    2.判断是否直接运行该.py文件。

什么意思?直接上代码:

(先上不带if __name__ == '__main__'的代码)

# foo.py
# coding:utf-8

def foo():
print "in foo"

print __name__ # foo.py单独执行时,可以打印出本模块(即foo.py文件)的名字(即foo)

foo()执行结果:
__main__
in foo
# coding:utf-8

import foo

foo.foo()
执行结果:
foo
in foo
in foo

-----------------------------------分割线-----------------------------------

(下面在foo.py中添加if __name__ == '__main__')

# foo.py
# coding:utf-8

def foo():
print "in foo"

print __name__ # foo.py单独执行时,可以打印出本模块(即foo.py文件)的名字(即foo)

if __name__ == '__main__':
foo()执行结果:
__main__
in foo
# coding:utf-8

import foo

foo.foo()
执行结果:
foo
in foo

一目了然,至于为什么会这样,我暂时还没搞清楚,也没时间分析。

暂时只要记住,写好的.py文件,都加上if __name__ == '__main__'。

参考文献:

1.这样理解python中的if __name__ == '__main__'

2.python中if __name__ == '__main__': 的解析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息