码迷,mamicode.com
首页 > 其他好文 > 详细

if__name__ == '__main__'

时间:2017-03-18 23:32:35      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:字节   print   模块   程序   建模   需要   解决   log   导入   

 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__'

标签:字节   print   模块   程序   建模   需要   解决   log   导入   

原文地址:http://www.cnblogs.com/themost/p/6576262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!