首先我们定义一个脚本文件hello.py:

#hello.py   
#程序的意思是:如果当前的name是main,就执行:打印'main',并运行foo()
def foo():   
    str="function"   
    print(str)  
print(__name__)    #输出:__main__
if __name__=="__main__":   
    print("main")   
    foo()

接着我们再定义一个脚本world.py,并调用之前定义的hello.py脚本:

import hello
打印hello的name,打印world脚本的名字
print(hello.__name__)   #输出:hello
print(__name__)         #输出:__main__

可以看出,hello.py调用前后的name发生了变化,在定义的hello.py里,name是main,而在被调用之后,name变为hello。

同时我们可以分析得出,main的名称只会对于当前的脚本文件的name,被调用的脚本的name就是被调用脚本的名称。

那么,通过:if __name__ == '__main__': 这个语句,我们可以实现以下几个方便的功能:
1、只执行本次脚本的函数或者类,进行测试;
2、防止被导入的模块的函数或者类被二次执行。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐