【发布时间】:2011-01-18 02:29:05
【问题描述】:
对于以下 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: cannot import name Second
像 Ruby 这样的其他动态语言有这种问题吗?我问的原因是因为我在 Django 项目中遇到了这个问题,其中 2 个模型相互依赖。我知道可能的解决方案是重新设计项目或按需导入。我只是想知道其他动态语言的开发者是否遇到过这个问题。
【问题讨论】:
-
你应该总是继承
object而不是什么都没有,这样你就可以使用新风格的类了。 -
@Mike,他没有指定他的 Python 版本。
-
@Hamish Grubijan,i)他使用了 Python 3 中没有的 print 语句,ii)他说他使用的是不支持 Python 3 的 Django,以及 iii)没有人使用蟒蛇3; Python 2 是合理的默认假设。
标签: python ruby dynamic-languages