Python循环导包

代码版本:3.6.3

Python不存在循环导包问题,或者说那些被称之为循环导包问题的真正原因不是循环,真正原因是在使用一个对象的时候还没有获取到这个对象(从报错信息也能看出这一点)。

不管是直接import还是from格式的导包,Python都只加载一次被导的包,以后即使再有导包语句也不会真正的加载那个包,只会去已经加载过的地方去寻找想要的对象。(Python可以实现真正重新导入)

不仅进行具体的操作是使用对象,`from xx import x`也算作对`x`对象的使用

配合上面的叙述理解下面这个例子,以后就对这类问题的原因和避免就没问题了。

三个.py文件内容如下,运行b.py会报错,而a.py和c.py能正常运行。 

""" a.py """
import b

life = 'bst'
"""结果
bst
"""



""" b.py """
import a

print(a.life)
"""结果
AttributeError: module 'a' has no attribute 'life'
"""



""" c.py """
import b
"""结果
bst
"""

猜你喜欢

转载自blog.csdn.net/lnotime/article/details/81368739