2011-03-14 30 views
109

Imagine un script python que tardará mucho tiempo en ejecutarse, y ¿qué sucederá si lo modifico mientras se está ejecutando? ¿El resultado será diferente?¿Qué sucederá si modifico un script de Python mientras se está ejecutando?

+1

El programa se carga en la memoria principal. Si cambia el archivo fuente, no pasa nada. Imagine que la CPU leería las instrucciones del disco duro ... –

+11

@Felix: se llama "Ejecutar en el lugar" (XIP). –

+0

@Ignacio: Interesante, no lo sabía. Gracias :) –

Respuesta

131

Nada, porque python precompila la secuencia de comandos en el archivo PYC y se inicia desde allí. Solo si ocurre algún tipo de excepción, puede obtener una explicación incorrecta, porque en la línea X puede haber un código diferente al que estaba antes de iniciar la secuencia de comandos

+9

No necesariamente en un archivo. –

+43

Pero, ¿y si reinicia mientras se está ejecutando, cuando los nuevos archivos pyc sobrescriben al antiguo, eso causará problemas en el programa que ya se estaba ejecutando o no? – dcousens

+12

No pasa nada. También lo comprobé en una pequeña prueba. Qué sucede: el pyc es solo el compilado. Y esta compilación se carga en la RAM y luego se ejecuta. Por lo tanto, siempre es posible cambiar el programa, volver a compilar y ejecutar otra instancia, p. en una consola diferente. – Chris

Cuestiones relacionadas