main file.py
from resources import *
alist[0].update()
print (blist)
resources.py
class a:
def __init__(self):
self.x=0
def update(self):
global blist
blist=blist+[b()]
class b:
def __init__(self):
self.y=0
blist=[]
alist=[a()]
当调用alist [0] .update()时,该程序应该在blist中创建一个新的b类实例,但是在它运行print(blist)之后它只显示一个空列表。我也尝试了相同的代码,其中类a定义如下
class a:
def __init__(self):
self.x=0
global blist
blist=blist+[b()]
def update(self):
pass
并在列表b中成功创建了一个实例。我真的需要它用函数而不是构造函数创建另一个实例,我该怎么做?任何意见表示赞赏!
P.S。这只在运行多个源代码文件时发生。
答案 0 :(得分:1)
blist=blist+[b()]
重新定义blist
。它不会修改原始对象,这是您在其他源文件中指向的blist
。
您应该.append
改为原始列表:
blist.append(b())