if __name__ == '__main__':在创建子进程时到底有什么用?

if __name__ == '__main__':在创建子进程时到底有什么用?

老师说

if __name__ == '__main__':

写不写都没有用,但是我如果不写这一段代码,在创建子进程时就会报错

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!是为了阻止在子进程中再创建子进,造成无线循环。

假定当前文件ccc.py ,ccc.py 文件中有创建子进程,b1.py也有创建子进程,ccc.py作为模块被导入到b1.py中,此时b1.py中有创建子进程的代码,那子进程又会执行ccc.py中的代码,创建子进程,会造成无限递归创建子进程。若是加上if __name__=="__main__"当ccc.py作为模块导入时,if __name__=="__main__"下的代码不会被执行,也就不会执行创建子进程的代码,无法递归创建子进程了。


https://img1.sycdn.imooc.com//climg/647088f309fd26cb08440791.jpg

ccc.py代码,有print("我是ccc.py的输出")

https://img1.sycdn.imooc.com//climg/647089730934e56b08320597.jpg

d1.py 将ccc.py 作为模块导入,并没有执行if __name__=="__main__"下的语句,只输出了"我是ccc.py的输出"这句话

https://img1.sycdn.imooc.com//climg/64708a0e09aeec2905880405.jpg

避免了无限创建子进程。祝学习愉快~








  • weixin_慕粉4114761 提问者 #1

    老师,也就是说为了防止出现无限递归创建子进程这种情况,所以创建子进程的代码必须写在 if __name__ == '__main__'里面,是这样理解吗?

    2023-09-18 22:33:38
  • 同学,你好!是的,可以这样理解

    祝学习愉快~

    2023-09-19 08:22:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师