0

メインファイル.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にインスタンスが正常に作成されます。コンストラクターではなく関数を使用して別のインスタンスを作成するために本当に必要なのですが、どうすればよいですか? どんなコメントでも大歓迎です!

PS これは、複数のソース コード ファイルを実行している場合にのみ発生します。

4

1 に答える 1