首页 > 代码库 > if__name__ == '__main__'
if__name__ == '__main__'
1 # a.py 2 import b 3 def x(): 4 print(‘x‘) 5 b.y 6 7 #b.py 8 import a 9 10 def y(): 11 print(‘y‘) 12 a.x() 13 14 #执行b.py引发异常
首先,执行b.py。程序执行b.py就需要创建新的模块对象b,然后再执行b.py对应的字节码。
b.py第一行代码为导入a模块,因此程序会导入a模块,同时就要创建模块对象a
然后a.py又执行第一行代码,即导入b模块,此时,因为第一步的时候b模块对象已经创建,所以不再继续创建模块对象,这里进一步往下执行b.py
执行代码a.x,此时因为a.py尚未完全导入,程序根本找不到a.x,所以抛出异常AttrrtubeError
解决方案:使用if__name__==‘__main__‘
if__name__ == '__main__'
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。