加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 所有动态语言都有循环导入问题吗?

发布时间:2020-12-20 12:39:24 所属栏目:Python 来源:网络整理
导读:对于以下 Python代码: first.py # first.pyfrom second import Secondclass First: def __init__(self): print 'Second' second.py # second.pyfrom first import Firstclass Second: def __init__(self): print 'Second' 创建文件并从shell运行以下命令后
对于以下 Python代码:

first.py

# first.py
from second import Second

class First:
    def __init__(self):
        print 'Second'

second.py

# second.py
from first import First

class Second:
    def __init__(self):
        print 'Second'

创建文件并从shell运行以下命令后:

python first.py

我收到错误:ImportError:无法导入名称第二

像Ruby这样的其他动态语言会出现这种问题吗?我问的原因是因为我在Django项目中遇到了这个问题,其中2个模型相互依赖.我知道可能的解决方案是重新设计项目或按需导入.我只是想知道其他动态语言中的开发人员是否遇到过这个问题.

解决方法

Python可以在某种程度上处理循环导入.在无法理解的情况下,解决方案在另一种语言中可能仍然没有意义.大多数问题都可以通过首先使用import来解决,然后再引用first.First而不是首先导入First.

如果你可以将共享代码移动到它自己的模块或以某种方式重构循环导入的需要会更好.循环导入始终表示设计问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读