写了一段代码,发现浅拷贝了:

UAVs=[UAV()]*UAVnum
UAVs=np.array(UAVs)
Targets=[Target()]*Targetnum
Targets=np.array(Targets)

即更新数组里的一个值,其他值都跟随改变。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

不能这么定义对象数组,python默认的赋值方式是浅拷贝,即赋值的是对象的引用。可以改为下面的方式:

UAVs=[]
for i in range(UAVnum):
    UAVs.append(UAV())
Targets=[]
for i in range(Targetnum):
    Targets.append(Target())
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄