我对IronPython中的循环引用有疑问。让我们说我有班级等级。在一个文件中,我有父类:
from Child import Child
class Parent(object):
def getChild(self):
return Child()
在另一个文件中,我有孩子班:
from Parent import Parent
class Child(Parent):
def doSomething(self):
return 0
我在这里有一些循环引用。所以,当我尝试执行这样的代码时:
from Parent import *
parent = Parent()
child = parent.getChild()
答案 0 :(得分:0)
正如您所说,您有一个循环导入问题。
解决这个问题的正常方法是简单地将两个类放在同一个文件中。 Python不强制文件和类之间的任何类型的链接,因此您可以在单个文件中拥有任意数量的类,并且可以随意调用它们。 (实际上,为文件提供与其包含的类完全相同的名称是 un -Pythonic;除了其他任何内容之外,文件应该具有lower_case_with_underscore名称,而类是CamelCase。)
但是,如果由于某种原因你无法做到这一点,你可以通过在方法中执行来打破循环导入:
class Parent(object):
def getChild(self):
from child import Child
return Child()