在自己写一个小项目的时候,发现明明自己使用import引入自己项目中的另一个Python文件是正确的写法,在运行的时候却发现总是提示错误。因为笔者本人也是学习Python不久,经过一个小时的琢磨,感觉应该是两个文件循环引用导致错误。比如a.py中有a.tt()和a.uu()两个方法;b.py中有b.xx()和b.yy()两个方法。a.py在使用的时候需要引用b.py()中b.xx的方法,然后在b.py使用的时候需要引入a.py中a.tt()的一个方法。所以在a.py中需要import b,同时在b.py中需要import a。因此自己写了一个小的案例,经过测试确实是循环引用造成冲突所致
在test002.py中写
在test003.py中写
然后随便执行test002或者test003提示
解决办法:
1.即把import语句写在方法或函数里面,将它的作用域限制在局部。这种方法的缺点就是会有性能问题。
2.将from xxx import yyy改成import xxx;xxx.yyy来访问的形式
3.出现循环import的问题往往意味着代码的布局有问题。可以合并或者分离竞争资源。合并的话就是都写到一个文件里面去。分离的话就是把需要import的资源提取到一个第三方文件去。总之就是将循环变成单向。