Acerca de las operaciones en Python

Reimprimiré el contenido del artículo en Internet, que es más fácil de entender:

Comprensión personal: en términos generales, todas las variables en Python guardan direcciones de referencia en lugar de guardar valores directamente. . Luego

a, b=b, a, el intérprete de Python correspondiente a este código analiza múltiples instrucciones de la máquina y su secuencia de ejecución es cargar las direcciones de referencia bb, aa de las variables b, a a la derecha. Sal y luego señala bb, b apunta a aa, completando así el intercambio de valores.

No puede entenderse simplemente como ejecutar b = a primero y luego ejecutar a = b. Son diferentes <. /p>

Primero ejecute b=a, luego ejecute a=b. Los dos son diferentes

No puede entenderse simplemente como ejecutar b = a primero y luego a = a. Los dos son diferentes

La siguiente es una reproducción interceptada:

Las variables de Python no almacenan valores directamente, sino que solo hacen referencia a direcciones de memoria. Cuando intercambia variables, solo intercambia las direcciones referenciadas.

Primero mira el siguiente programa: import?dis

def?func(a, b):

a, b=b, a

imprimir(a, b)

a=10

b=20

func(a, b)

dis .dis(func)

En términos generales, una declaración de Python corresponde a varias instrucciones de código de bytes. El código de bytes de Python es un lenguaje intermedio similar a las instrucciones ensambladoras, pero una instrucción de código de bytes no corresponde a una instrucción de máquina (instrucción binaria), sino a un fragmento de código C, y diferentes instrucciones tienen diferentes rendimientos, por lo que el rendimiento de un código no puede ser. juzgado únicamente por el número de instrucciones. En su lugar, puede confirmar el rendimiento de su programa mirando los códigos de instrucción que se llaman con más frecuencia.

Un programa Python se compone de múltiples bloques de código. Por ejemplo, un archivo Python es un bloque de código, una clase o función es un bloque de código y un bloque de código corresponde a un contexto de tiempo de ejecución y un conjunto. de bytes.

¿Qué hace esto?

El módulo dis se utiliza principalmente para analizar el código de bytes del módulo integrado. El método comúnmente utilizado es dis.dis ([bytesource]). Se puede obtener el bloque de código correspondiente.

¿Salida de código?

Aquí solo necesitas mirar el 12 delante del resultado (en mi compilador, la línea de código intercambiada está en la línea 12)

Se puede ver que es principalmente la instrucción ROT_TWO causada por:?

Al observar la documentación de Python, puede ver que hay instrucciones como ROT_TWO (código fuente 1398), ROT_THREE (código fuente 1406) y ROT_FOUR, que pueden intercambiar directamente dos , ¿tres o cuatro variables?

---------------------?

Autor: ¿Patata, ñame y huevos de ñame?

Fuente: CSDN?CSDN?

Texto original:/qq_33414271/article/details/78522235?

Copyright: ¡Este artículo es un artículo original del blogger!

t/javascript" src="../css/tongji.js">