Registros en Python

Anuncio
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…
Descargar