python中的if__name__== "__main__"
1、# vim if__name_0
#_*_coding:utf8_*_
def foo():
print "in foo"
print__name__
foo()
# python if__name_0
__main__
in foo
>>> import if__name_0
if__name_0
in foo
# python直接执行if__name_0 和 import if__name_0 后的输出结果不一样,
# 是因为python 直接执行print __name__ 输出的结果是 __main__ , 而import
# 导入执行__name__ 输出的结果是脚本的名字。
2、
# vim if__name_1
#_*_coding:utf8_*_
import if__name_0
if__name_0.foo()
# python if__name_1
if__name_0
in foo
in foo
python执行if__name_1这个脚本后,会先import if__name_0 ,根据上面已经得出的结果,可以知道
import if__name_0 输出的是:
if__name_0
in foo
然后脚本会再执行函数if__name_0.foo(),输出的结果是:
in foo
所以最终输出的结果是:
if__name_0
in foo
in foo
>>> import if__name_1
if__name
in foo
in foo
3、
# vim if__name_2
#_*_coding:utf8_*_
def foo():
print "in foo"
print __name__
if __name__ == "__main__":
foo()
# python if__name_2
__main__
in foo
python执行脚本的时候,print __name__输出的结果是__main__ , __name__ == "__main__" ,
所以继续执行下面的函数,输出: in foo , 所以最终输出结果为 :
__main__
in foo
>>> import if__name_2
if__name_2
import if__name_2的时候,print __name__ = if__name2 ,不等于__main__ , 所以后面的函数就
不执行了,最终输出的结果是if__name_2
4、
# vim if__name_3
#_*_coding:utf8_*_
import if__name_2
if__name_2.foo()
# python if__name_3
if_name_2
in foo
import if__name_2 根据上面得出的结果,import if__name_2输出的是:if__name_2
函数if__name_2.foo()输出的结果是:in foo , 所以最终输出的结果是:
if_name_2
in foo
>>> import if__name_3
if__name_2
in foo
页:
[1]