我有两个py文件。 a.py和b.py在名为test(包含__init__.py
)
我想访问下面a.py中定义的属性self.items
import b
class Window(object):
def __init__(self):
self.items={'Magenta':'mag','Grey':'gre','Red':'red'}
def getMats():
newobj=b.BAR()
selected = newobj.type_of_mats[1]
来自另一个py文件b.py [下面]所以在b.py我导入了一个模块,即
import a
#now
obj = a.Window()
print obj.items['Magenta']
class BAR(object):
def myMat(self):
type_of_mats=['ground', 'corridor', 'Outdoor']
不应该上面打印mag或者我应该怎么做?
答案 0 :(得分:1)
答案 1 :(得分:0)
循环导入。 a.py
再次导入b
和b.py
导入a
。鸡/蛋问题!并且python无法为你解决这个问题,因此它会警告你最大递归深度(它一直从a跳到b到a到b跳到......)。
您必须修复它,以便导入仅为单向。
答案 2 :(得分:0)
您有循环依赖关系:a
正在导入b
,而a
又导入import b
。由于这两个导入处于模块级别,因此无法完成。
在您的情况下,您可以通过将getMats
移动到{{1}}方法来解决此问题。