Clases persistentes con Python, C# y Scala
Enviado por Sebastian Prado • 13 de Julio de 2022 • Trabajo • 1.063 Palabras (5 Páginas) • 151 Visitas
[pic 1]
FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA DE SISTEMAS E INFORMATICA
Tarea Académica 1
Clases persistentes con Python, C# y Scala
Alumno
Docente
Moreno Cueva, Maximo Alberto
Curso
Programación Orientada a objetos
Clases de Persistencia
- Introducción
Se llama persistencia a la capacidad de guardar la información de un programa para poder volver a utilizarla en otro momento. Es lo que los usuarios conocen como Guardar el archivo y después Abrir el archivo. Pero para un programador puede significar más cosas y suele involucrar un proceso de serialización de los datos a un archivo o a una base de datos o a algún otro medio similar, y el proceso inverso de recuperar los datos a partir de la información serializada.
- Desarrollo
Clases persistentes
Las clases proveen una forma de empaquetar datos y funcionalidad juntos. Al crear una nueva clase, se crea un nuevo tipo de objeto, permitiendo crear nuevas instancias de ese tipo. Cada instancia de clase puede tener atributos adjuntos para mantener su estado. Las instancias de clase también pueden tener métodos (definidos por su clase) para modificar su estado. En una aplicación, la capa de persistencia está formada por un conjunto de clases y componentes responsables del almacenamiento y recuperación de datos, a y desde una o más fuentes de datos. Esta capa, necesariamente incluye un modelo de las entidades del modelo del negocio. Las clases persistentes, por lo tanto, son clases situadas en la capa de persistencia que implementan las entidades del negocio del problema (por ejemplo, Cliente y Pedido en una aplicación de comercio electrónico). la persistencia de objetos significa que los objetos individuales pueden "sobrevivir" fuera del proceso de la aplicación que los creó. Esto significa que pueden ser almacenados en un almacén de datos y ser recuperados luego.
- Clases persistente en Python
Cuando un programa termina su ejecución, es estado de los objetos que contenía es eliminado, Sin embargo, existen varias formas de permitir que el estado de un objeto “persista”.
- La función dump()
La función dump() del módulo pickle, permite guardar un objeto en un archivo.
- La función load()
La función load() del módulo pickle, permite cargar un objeto desde un archivo y regresarlo Pickle.dump().
- La función dumps()
La función dumps() del módulo pickle, permite convertir el estado de un objeto es un objeto de tipo bytes.
- La función loads()
La función loads() módulo pickle, regresa un objeto con el estado almacenado es un objeto de tipo bytes.
- Restricciones
Las funciones del módulo pickle sólo guardan el estado de un objeto, por lo que es necesario que el intérprete tenga acceso a la clase a partir de la cual fueron instanciados los objetos, así como los otros objetos que pudieran habérsele agregado al objeto en cuestión.
- Precauciones con respecto a la serialización de objetos
La serialización puede representar un riesgo de seguridad si las clases originales son sustituidas por otras clases con las mismas interfaces y estructuras, pero con implementaciones distintas. Por lo tanto, se recomienda que la serialización se utilice exclusivamente para garantizar a la persistencia de los objetos, pero no como un formato de transmisión de datos
Ejemplo
def guardar_puntajes(nombre_archivo, notas):
""" Guarda la lista de puntajes en el archivo. Pre: nombre archivo corresponde a un archivo válido, puntajes corresponde a una lista de tuplas de 3 elementos.
puntajes corresponde a una lista de tuplas de 3 elementos. separados por comas. """
archivo = open(nombre_archivo, "s")
for nombre, puntaje, tiempo in notas:
archivo.write(nombre+","+str(notas)+","+tiempo+"\\n")
archivo.close()
def recuperar_puntajes(nombre_archivo):
""" Recupera las notas a partir del archivo provisto. Devuelve una lista con los valores de las notas.
...