python 导入循环问题
来源:互联网 发布:mysql delete 编辑:程序博客网 时间:2024/05/18 22:16
在用django中调用某个函数时,报错:
can't import get_user_info
发现,导入了这个模块啊,为什么导入不成功呢?经人提示,是导入循环的问题。 打开《Python核心编程》模块的导入循环那一章,看一下就明白了。
模拟一个简单的场景
a.py中有一个函数a(),需要调用b.py中的函数b(), 而b.py中的函数c()又需要调用a(),这就出现了循环导入。代码如下所示:
from b import bprint '---------this is module a.py----------'def a(): print "hello, a" b()a()
from a import aprint '----------this is module b.py----------'def b(): print "hello, b"def c(): a()c()
运行:python a.py,报错如下:
zy@zy:~/code/python/test/import$ python a.pyTraceback (most recent call last): File "a.py", line 1, in <module> from b import b File "/home/zy/code/python/test/import/b.py", line 1, in <module> from a import a File "/home/zy/code/python/test/import/a.py", line 1, in <module> from b import bImportError: cannot import name b
在a.py中导入b.b(),在导入b文件的时候,又要去导入a文件,a文件又要去导入b文件,这是一个死循环了,自然是不允许的。
解决方法:
- 可以将导入模块的语句放在局部(函数)里。如下所示:
print '---------this is module a.py----------'def a(): print "hello, a" from b import b b()a()
rint '----------this is module b.py----------'def b(): print "hello, b"def c(): from a import a a()c()
运行:python a.py,结果如下:
zy@zy:~/code/python/test/import$ python a.py---------this is module a.py----------hello, a----------this is module b.py-------------------this is module a.py----------hello, ahello, bhello, ahello, bhello, b
0 0
- python 导入循环问题
- python 导入循环问题
- [Python]导入循环问题
- python导入循环问题
- OC循环导入问题
- python 导入库问题
- python 模块导入问题
- Python相对导入问题
- python中的for循环问题
- Python for循环小问题
- python 模块导入问题详解
- Python 模块导入路径问题
- python导入文件出现问题
- [python笔记]for循环中循环变量迭代问题
- Python循环依赖问题的解决
- jeseph问题,python实现, 循环链表
- Python 简单循环实现汉诺塔问题
- OC中循环导入的问题,及解决办法.
- CDR如何将绘图页面指定对象保存为JPG格式
- UIButton高亮(highlighted)下的边框颜色(borderColor)
- 软件性能测试的本质
- 4.0spring框架学习(四)自动装配
- App测试方法总结
- python 导入循环问题
- MYSQL数据库规范-字段规范
- tensorflow训练的模型在java中的使用
- Android NavigationView的使用详解以及各种问题解决方案
- 5.0spring框架学习(五)注解
- python中用logging实现日志滚动和过期日志删除
- springmvc发生No mapping found for HTTP request with URI[...] in dispatcher servlet
- kafka生产者客户端——那年我趟过的坑
- linux安装虚拟机及weblogic