これが私がやろうとしていることの簡略化されたバージョンです:
class a():
Requirement = 0
def func(self, oldlist, x):
newlist = [None]*3
newlist = oldlist
newlist[x] = b()
print "Class a"
g(newlist)
class b():
Requirement = 1
def g(list):
for i in range(3):
if list[i].Requirement==0:
list[i].func(list,i)
Initiallist=[None]*3
Initiallist[0]=a()
Initiallist[1]=b()
Initiallist[2]=a()
g(Initiallist)
私が期待していることを言葉で表現しようとする代わりに、私の頭の中で起こるべきことを表す図をいくつか作成しました。
これは、クラス a 内の関数を 4 回呼び出す必要があることを意味します。ただし、2回しか呼び出されないため、これが起こっているようです:
なぜこれが起こっているのか、どのように修正すればよいのかわかりません。