微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

对于以下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.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐