gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:20:47 25 4
gpt4 key购买 nike

对于以下 Python 代码:

第一个.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: cannot import name Second

Ruby 等其他动态语言是否存在此类问题?我问的原因是因为我在一个 Django 项目中遇到了这个问题,其中 2 个模型相互依赖。我知道可能的解决方案是重新设计项目或按需导入。我只想知道其他动态语言的开发者是否遇到过这个问题。

最佳答案

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

如果您可以将共享代码移到它自己的模块或以某种方式重构循环导入的需要,那就更好了。 循环导入总是表明存在设计问题。

关于python - 所有动态语言都有循环导入问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2284968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com