Estas son posibles soluciones a los ejercicios propuestos.
Carta
#!/usr/bin/env python """ EDD: Creando objetos - Carta. Importamos el módulo random para que la creación de objetos sea pseudo-aleatoria. """ import random class Carta: """ Nuestra propia clase Carta. """ def __init__(self, valor, palo): self.valor = valor self.palo = palo def __repr__(self): return '<Carta {} de {}>'.format(self.valor, self.palo) def __str__(self): return 'El {} de {}'.format(self.valor, self.palo) if __name__ == '__main__': PALOS = ['oros', 'bastos', 'copas', 'espadas'] carta = Carta( valor=random.randint(1, 12), palo=random.choice(PALOS), ) print(carta)
Mascota
edd/mascotas.py (Código fuente)
#!/usr/bin/env python """ EDD: Creando objetos - Mascota. Importamos el módulo random para que la creación de objetos sea pseudo-aleatoria. """ import random class Mascota: """ Nuestra propia clase Mascota. """ def __init__(self, nombre, edad, tipo): self.nombre = nombre self.edad = edad self.tipo = tipo def __repr__(self): return '<Mascota {}: {}>'.format(self.nombre, self.tipo) def __str__(self): return 'Soy {}'.format(self.nombre) def saludar(self): """ Saludo de la mascota. """ print('Hola! Me llamo {}, tengo {} y soy un {}'.format(self.nombre, self.edad, self.tipo)) if __name__ == '__main__': TIPOS = ['perro', 'gato', 'pez', 'canario'] NOMBRES = ['Pluto', 'Silvestre', 'Nemo', 'Piolín'] mascota = Mascota( nombre=random.choice(NOMBRES), edad=random.randint(1,20), tipo=random.choice(TIPOS) ) print(mascota) mascota.saludar()
Alumno
edd/alumnos.py (Código fuente)
#!/usr/bin/env python """ EDD: Creando objetos - Alumno. Importamos el módulo random para que la creación de objetos sea pseudo-aleatoria. """ import random class Alumno: """ Nuestra propia clase Alumno. """ def __init__(self, nombre, edad=18, materias=[]): self.nombre = nombre self.edad = edad self.materias = materias def __repr__(self): return '<Alumno {}>'.format(self.nombre) def __str__(self): return 'Soy {}'.format(self.nombre) def inscribir(self, materia): """ Inscripción a materias. """ self.materias.append(materia) def listar_materias(self): """ Lista cada una de las materias del alumno, una por línea. """ print('Listado de materias:') if not self.materias: print('\tEl alumno no está inscripto en materias.') return for materia in self.materias: print('\t- {}'.format(materia)) if __name__ == '__main__': MATERIAS = ['ARQ', 'EDD', 'DLO', 'PAR', 'TIC', 'ANA', 'LOG'] NOMBRES = ['Pluto', 'Silvestre', 'Nemo', 'Piolín'] alumno = Alumno(nombre=random.choice(NOMBRES)) print(alumno) alumno.inscribir(materia=random.choice(MATERIAS)) alumno.inscribir(materia=random.choice(MATERIAS)) alumno.listar_materias()