ctypes es un módulo seguro para usar, si lo usa correctamente.
Algunas bibliotecas proporcionan un acceso de nivel inferior a las cosas, algunos módulos simplemente le permiten dispararse en el pie. Entonces, naturalmente, algunos módulos son más peligrosos que otros. ¡Esto no significa que no deberías usarlos!
Usted probablemente ha escuchado a alguien referirse a algo como esto:
#Crash python interpreter
from ctypes import *
def crashme():
c = c_char('x')
p = pointer(c)
i = 0
while True:
p[i] = 'x'
i += 1
La pitón intérprete estrellarse es diferente que sólo el código Python en sí erroring a cabo con un error de ejecución. Por ejemplo, la recursión infinita con un conjunto de límites de recursión predeterminado provocaría un error de tiempo de ejecución pero el intérprete de Python seguiría vivo después.
Otro buen ejemplo de esto es con el módulo sys. Sin embargo, no dejaría de usar el módulo sys porque puede bloquear el intérprete de Python.
import sys
sys.setrecursionlimit(2**30)
def f(x):
f(x+1)
#This will cause no more resources left and then crash the python interpreter
f(1)
Hay muchas bibliotecas que proporcionan un acceso de nivel inferior. Por ejemplo, el módulo The gc se puede manipular para dar acceso al objeto parcialmente construido, accediendo a los campos que pueden causar bloqueos.
de referencia y las ideas tomadas de: Crashing Python
Tantas buenas respuestas, tengo que pensar sobre esto y posiblemente comentar más sobre cada respuesta. No es de extrañar que me encanta este sitio. – phreaki