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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM