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