4.2.python入门之if __name__ == '__main__':语句

在Python中,导入模块时,实际上会把被导入的模块执行一遍,如下:
先看被调用的模块:

test.py:

def haha():
    print("哈哈")
haha()

再看主程序

main.py:

import test
print("一棵大树")

主程序执行结果是:

哈哈
一棵大树

那怎么才能只是单纯调用而不执行被调用模块的代码呢?要想被调用模块代码不被执行,前提得知道变量name是什么意思,简单来说就是,如果该模块不被别的程序导入的话,name的值就是” main“,如果当此模块被别的程序导入的话,那么这个被导入时,模块内的name值就是文件的名字(如:test(不带.py)),如下:

test_1.py:

def haha():
    print("哈哈")
haha()
print(__name__)

test_1.py执行结果为:

哈哈
main

如果test_1被test_2导入引用的话,如:

test_2:

import test_1
print("一棵大树")

test_2的运行结果为:

哈哈
test_1
一棵大树

所以我们在被调用的模块中test_1.py中,可执行的代码前加上这么一句判断,if name == 'main':,被调用时,可执行的代码就不会被执行了!

test_1.py:

def haha():
    print("哈哈")
if __name__ == '__main__':
haha()
print(__name__)

这样在被调用时,就不会执行:haha()和print(name)这两条可执行代码。
而在自身单独运行时(即name == 'main')时,会执行haha()和print(name)这两条可执行代码。

参考资料:https://blog.csdn.net/haijiege/article/details/85007543

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容