写了一段代码,发现浅拷贝了:
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())