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())
posted @ 2019-05-04 14:58  ->大胖子  阅读(3336)  评论(0编辑  收藏  举报