Mecanismo de memoria de Python -- = operación de asignación

Mecanismo de memoria de Python

Todo en Python es un objeto, no es solo una conversación.

1. Conocimientos preliminares:

id():() puede identenderse como en lenguaje C *, que devuelve la dirección del objeto actual en la memoria.

int p = id(object) # id函数返回对象object在其生命周期内位于内存中的地址,id函数的参数类型是一个对象
2. Todo es un objeto

El concepto de Python es que todo es un objeto, por lo que en el lenguaje Python, todos los "elementos" deben considerarse como objetos de Python.

1

Si piensa según el lenguaje C, xey deberían tener direcciones diferentes.
Pero en Python, todo es un objeto, por lo 3que es un objeto. Tanto x como y apuntan al mismo objeto 3, por lo que la memoria de x e y es la misma.

3. El papel de =
1

Si sigue el pensamiento del lenguaje C, x es solo una tarea simple, e imprimir x dos veces debería tener la misma dirección.
Pero en Python todo es un objeto. x=x+y, es la suma de dos objetos. x+yLos dos objetos en el lado derecho del signo igual se suman para formar un nuevo objeto, y el nuevo objeto se asigna al nombre de variable x. El objeto anterior x fue destruido porque no tenía referencia. . Por lo tanto, las direcciones de impresión x dos veces son diferentes.

4. Evite la "destrucción"

En la mayoría de los objetos en Python, puede usarlo 切片para +=asignar directamente la memoria del objeto para evitar la destrucción y construcción del objeto, lo que ahorra mucho tiempo.

1
5. Escenarios de aplicación

Objetos como matrices, numpy, pandas y tensor perderán mucho tiempo cuando se destruyan y construyan cuando contengan una gran cantidad de elementos. En este momento, comprenda el mecanismo de procesamiento de memoria de Python y procese los datos de memoria del objeto en su lugar. de reconstruir un nuevo objeto, ahorrará mucho tiempo y mejorará la eficiencia de ejecución del programa.

Supongo que te gusta

Origin blog.csdn.net/qq_44733706/article/details/128514041
Recomendado
Clasificación