La diferencia entre asignación, copia superficial y copia profunda en Python


El texto y las imágenes del prefacio son de Internet y son solo para fines de aprendizaje y comunicación. No tienen ningún uso comercial. Los derechos de autor pertenecen al autor original. Si tiene alguna pregunta, contáctenos a tiempo para su procesamiento.

PD: si necesita materiales de aprendizaje de Python, puede hacer clic en el siguiente enlace para obtener http://t.cn/A6Zvjdun

Conclusión:
Asignación: solo apunte la variable al objeto original, que en realidad es una referencia (alias) del objeto;
copia superficial (copia): el método de copia del módulo de copia, solo se copia el objeto primario, no los objetos secundarios internos del objeto;
copia profunda (copia profunda): el método de copia profunda del módulo de copia copia completamente el objeto primario y sus objetos secundarios.

Ejemplos:

 

Copiar objetos variables:

 

 

Copiar resultados de ejecución de objetos variables:

Se puede ver que al copiar un objeto variable, la asignación no genera un nuevo objeto, sino que solo señala la variable al objeto original, y tanto la copia superficial como la copia profunda generan un nuevo objeto, pero la copia superficial no tiene objetos secundarios del objeto copiado, por lo que Después de modificar el valor del subobjeto, el valor del nuevo objeto generado por la copia superficial también ha cambiado, mientras que el nuevo objeto generado por la copia profunda no ha cambiado con la modificación del subobjeto del objeto copiado.

 

 

Copiar objetos inmutables:

 

 

Copie los resultados de ejecución de objetos inmutables:

Al comparar los resultados de ejecución de copiar objetos variables arriba, se puede ver que al copiar objetos inmutables, la diferencia es que la copia superficial no genera nuevos objetos, pero en lugar de asignarlos, apunta directamente al objeto original.

Si quieres aprender Python o estás aprendiendo Python, hay muchos tutoriales de Python, pero ¿es el último? Tal vez haya aprendido algo que la gente podría haber aprendido hace dos años, y aquí comparto una ola de los últimos tutoriales de Python para 2020. ¡Cómo obtenerlo, puede obtenerlo gratis editando la "Información" de la carta privada!

Supongo que te gusta

Origin www.cnblogs.com/python0921/p/12698063.html
Recomendado
Clasificación