写了一段代码,发现浅拷贝了:
UAVs=[UAV()]*UAVnumUAVs=np.array(UAVs)Targets=[Target()]*TargetnumTargets=np.array(Targets)
即更新数组里的一个值,其他值都跟随改变。
不能这么定义对象数组,python默认的赋值方式是浅拷贝,即赋值的是对象的引用。可以改为下面的方式:
UAVs=[]for i in range(UAVnum): UAVs.append(UAV())Targets=[]for i in range(Targetnum): Targets.append(Target())