Registros en Python Introducción a la Computación Clase 12 Patricia Borensztejn Seguimos con Python • Sea un programa tal que debemos almacenar un conjunto de datos de personas: nombre, dni, edad (versión reducida de la base de datos de Herman). • Como ya sabemos listas, hacemos una cosa así: Ejemplo con listas • O sea, hemos construido una lista. Recordemos que podemos hacer listas de listas, y que una lista es un puntero, y que una cadena es una secuencia y que también es un puntero. • Y también recordemos que la de abajo es una representación simplificada….. Ejemplo con listas • Con esta representación, podemos mostrar todos los elementos de la lista de esta manera: • Donde: • El inconveniente es que para acceder a la edad, por ejemplo, hemos de recordar que la hemos almacenado como el tercer elemento de la lista…. Registros • Una idea mejor sería poder acceder a los valores utilizando nombres, en lugar de índices: eso se llama registro • Un registro es una agrupación de datos de distinto tipo que se acceden mediante un identificador. Cada uno de esos tipos de datos diferentes que forman parte del registro, se llaman campos del registro. • Como el tipo y número de los campos que forman un registro varía según la aplicación, el lenguaje nos permite definir un nuevo tipo de dato, por ejemplo: el tipo Persona será un nuevo tipo de dato. (No confundir con las variables) Como definir registros en Python Hay que usar el módulo record Es el nombre del nuevo tipo Valores por defecto de los campos Campos (o atributos) Como crear variables del nuevo tipo • La creación de una variable del nuevo tipo se realiza así: • Esta operación se llama instanciación o construcción. • Las variables juan y ana son instancias o registros del tipo Persona Acceso a los campos del registro • El operador . (punto) nos permite acceder a cada uno de los campos definidos en el tipo Persona. Listas del tipo Persona • Podemos definir: • Y recorrer la lista: Asignación • La variable juan es una referencia a memoria, y la asignación copia esa referencia son el mismo objeto juan y otro. • Si modificamos la edad de Juan, modificamos la de otro. Paso de parámetros • El paso de parámetros es por referencia, se pasa el puntero a la variable de tipo Persona. Copia de registros • Para copiar los registros y no las referencias, debemos utilizar el constructor! • Y ¡ojo! Lo mismo puede suceder al copiar campos de un registro a otro!!!! Recordemos que las cadenas también son referencias! Y tambien las listas! Ejemplo: Estación Meteorológica Ejemplo Meteo sin copia Ejemplo Meteo con copia de registros Usando el operador de corte para cadenas Gestión de Memoria Y también…. • Los registros se pueden anidar…