寫了一段代碼,發現淺拷貝了:
UAVs=[UAV()]*UAVnum
UAVs=np.array(UAVs)
Targets=[Target()]*Targetnum
Targets=np.array(Targets)
即更新數組里的一個值,其他值都跟隨改變。
不能這么定義對象數組,python默認的賦值方式是淺拷貝,即賦值的是對象的引用。可以改為下面的方式:
UAVs=[]
for i in range(UAVnum):
UAVs.append(UAV())
Targets=[]
for i in range(Targetnum):
Targets.append(Target())