python创建对象数组避免浅拷贝

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

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())

猜你喜欢

转载自www.cnblogs.com/gaosheng12138/p/10808538.html
今日推荐