主文件.py
from resources import *
alist[0].update()
print (blist)
资源.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中创建了一个实例。我真的需要它来用函数而不是构造函数创建另一个实例,我该怎么做?如有任何意见,我们将不胜感激
另外,只有在运行多个源代码文件时才会发生这种情况
Tags:
文件实例frompyself列表initdefupdateglobalclassresourcesprintalistblist1条回答网友
1楼 ·
发布于 2023-03-07 00:10:57
blist=blist+[b()]
重新定义了blist
。它不会修改原始对象,这就是另一个源文件中的blist
所指向的对象
您应该.append
到原始列表:
blist.append(b())
当用多个源文件运行python程序时,构造函数的行为与函数不同
https://oxox.hk/product/目經眼藥水/
当用多个源文件运行python程序时,构造函数的行为与函数不同
http://clifft5.com/stereotyping-and-profiling-racial-and-otherwise/
当用多个源文件运行python程序时,构造函数的行为与函数不同
https://elstonmaterials.com/quick-shop/
当用多个源文件运行python程序时,构造函数的行为与函数不同
https://ladermocosmetiquenaturelle.fr/temoignages-formations/
当用多个源文件运行python程序时,构造函数的行为与函数不同
https://mmuitvaart.nl/img_6530-3/
当用多个源文件运行python程序时,构造函数的行为与函数不同
https://healthstrategyassoc.com/home/speaking/
当用多个源文件运行python程序时,构造函数的行为与函数不同
https://osterhustimes.com/2009/03/01/what-has-hawaii-to-do-with-alaska/
当用多个源文件运行python程序时,构造函数的行为与函数不同
https://fifemaroc.net/catalogue/catalogue-2014-jury-2/
当用多个源文件运行python程序时,构造函数的行为与函数不同
https://corporacionbadel.com/portfolio/paleta/
当用多个源文件运行python程序时,构造函数的行为与函数不同
https://thinkbizzmarcom.com/blog/social-media-promotion