Maison  >  Article  >  développement back-end  >  Objets de copie Python (copie profonde et copie superficielle)

Objets de copie Python (copie profonde et copie superficielle)

高洛峰
高洛峰original
2017-01-19 11:31:491543parcourir

1. copy.copy copier superficiel copie uniquement l'objet parent et ne copie pas les objets enfants internes de l'objet.
2. Objet copy.deepcopy deep copy et ses sous-objets
Un bon exemple :

import copy
a = [1, 2, 3, 4, ['a', 'b']]  #原始对象

b = a  #赋值,传对象的引用
c = copy.copy(a)  #对象拷贝,浅拷贝
d = copy.deepcopy(a)  #对象拷贝,深拷贝

a.append(5)  #修改对象a
a[4].append('c')  #修改对象a中的['a', 'b']数组对象

print 'a = ', a
print 'b = ', b
print 'c = ', c
print 'd = ', d
Résultat de sortie :
a = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c = [1, 2, 3, 4, ['a', 'b', 'c']]

d = [1, 2, 3, 4, ['a', 'b ']]

Pour plus d'articles sur les objets de copie Python (copie profonde et copie superficielle), veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn