CTIC - UNI
Programación en Python Nivel básico
Características importantes de Python
Las siguientes son algunas de las características más esenciales de Python:
Código fuente a código Byte
Sin ningún paso intermedio, se compila el código fuente de Python directamente al
código de bytes. Esto permite que los scripts de Python se ejecuten en múltiples
plataformas sin la necesidad de una herramienta externa.
Orientado a objetos
Python es un lenguaje de programación totalmente orientado a objetos. En Python,
todo es una entidad. Además, las clases en Python lo simplifican para construir nuevos
objetos.
Soporte para extensión C / C ++
El código Python se puede expandir aún más en C y C ++. Este método Aumenta
enormemente la velocidad de un programa Python.
Lenguaje dinámico
Python es un lenguaje de programación dinámico. Los formularios están vinculados a
valores en lugar de variables. Además, las búsquedas de métodos y funciones se realizan
en tiempo de ejecución.
Recolección automática de basura (garbage collection)
Python maneja la recolección de basura automáticamente. El módulo "gc", en por otro
lado, se puede utilizar para realizar la recolección de basura en cualquier momento.
Lenguaje altamente estructurado
Declaraciones, funciones, clases, módulos y paquetes, así como la sintaxis basada en
sangría de Python, permiten a los desarrolladores escribir código altamente
estructurado y legible.
Rápido y mantenible en comparación con otros idiomas
Python es más rápido, más organizado y más fácil de administrar en comparación con
otros lenguajes compilados.
Mecanismo de recolección de basura de Python y módulo gc
La recolección de basura en Python se implementa mediante el recuento de referencias y
la recolección generacional.
Recuento de referencias: cuando se crea el objeto, el recuento de referencias aumenta
en 1, la referencia del objeto se elimina y el recuento de referencias se reduce en 1.
Cuando el recuento de referencias es 0, la memoria ocupada por el objeto será
publicado.
CTIC - UNI
Programación en Python Nivel básico
La referencia circular a se refiere a byb se refiere a a. El recuento de referencia nunca
será 0. En este caso, el recuento de referencia no puede resolver el problema de la
liberación de memoria. Este problema puede resolverse mediante el reciclaje
intergeneracional.
Reciclaje intergeneracional: hay tres listas vinculadas (cada vez que se crea un objeto,
python agregará el objeto a la lista vinculada),
Principio: El recuento de aplicaciones se reduce en uno para aquellos objetos en la
cadena que no están referenciados pero cuyo recuento no es cero. El recuento de
referencia se resta por uno muchas veces y aún no es cero. Se limpiará en la generación
0 vinculada. lista hasta que el recuento sea 0. La lista enlazada de generación 0 se
limpiará hasta un cierto número de veces, la lista enlazada de primera generación se
borrará y la lista enlazada de primera generación se borrará un número determinado de
veces, y la segunda Se borrará la lista de generación enlazada. El número de limpiezas
está determinado por el bloque de madera gc.
gc.set_threshold (200,20,10), 200 representa el número de veces que se limpia la lista
enlazada de la generación 0, 20 representa la primera generación y 10 representa la
segunda generación.
La secuencia de limpieza: Cuando la generación 0 se limpia 200 veces, la generación 1
se limpia y la lista vinculada de la generación 0 se limpia una vez. Cuando la generación
1 se limpia 20 veces, la generación 2 se limpia y ambas generaciones 0 y 1 también se
limpiarán. limpiado.
La configuración predeterminada de Python 2.7 es (133,2,4)
Python libera memoria manualmente
import gc
# a es una variable o una función
del a
gc.collect()
Referencias
gc - Interfaz del recolector de basura
https://runebook.dev/es/docs/python/library/gc
gc — Recolector de basura
https://rico-schmidt.name/pymotw-3/gc/index.html