Clase 18: POO - Clases y Objetos
¿Cómo modelo una clase en Python?
Usamos la palabra reservada class.
class Alumno:
pass
Esto define una clase llamada Alumno.
Notese que para definir las clases tengo las mismas reglas que para las variables, pero por convención se escriben en mayuscula y estilo
CamelCase.
Agregando los atributos
Los atributos son las propiedades que tiene un objeto.
class Alumno:
def __init__(self, nombre, edad, curso, promedio):
self.nombre = nombre
self.edad = edad
self.curso = curso
self.promedio = promedio
Esto define una clase llamada Alumno con cuatro atributos: nombre, edad, curso y promedio.
Instanciando un objeto
Para crear un objeto a partir de una clase, usamos la siguiente sintaxis:
alumno1 = Alumno("Juan", 20, "6º2º", 8.5)
Si yo quiero acceder a los atributos de un objeto, hago lo siguiente:
print(alumno1.nombre)
print(alumno1.edad)
print(alumno1.curso)
print(alumno1.promedio)
Agregando métodos
Los métodos son las funciones que tiene un objeto.
class Alumno:
def __init__(self, nombre, edad, curso, promedio):
self.nombre = nombre
self.edad = edad
self.curso = curso
self.promedio = promedio
def mostrar_info(self):
print(f"Nombre: {self.nombre}")
print(f"Edad: {self.edad}")
print(f"Curso: {self.curso}")
print(f"Promedio: {self.promedio}")
def aprobar(self):
if self.promedio >= 6:
print(f"{self.nombre} aprobó")
else:
print(f"{self.nombre} no aprobó")
¿Cómo llamo a los métodos?
alumno1.mostrar_info()
alumno1.aprobar()
¿En qué se diferencia este metodo de una función?
La diferencia es que los métodos tienen acceso a los atributos del objeto.
¿Qué es __init__?
El método __init__ es un método especial que se ejecuta cuando se crea un objeto a partir de una clase.
Es el constructor de la clase.
¿Qué es self?
self es una referencia al objeto que se está creando.
Actividades
- Elegí una de las clases que diseñaste en la actividad anterior y creala en python.
La clase deberá tener:
- al menos 4 atributos
- al menos 3 métodos
-
A partir de la clase creada, generar al menos 3 objetos diferentes.
-
Implementá los 3 métodos que definiste para tu clase.
- Al menos uno de ellos deberá utilizar información almacenada en los atributos del objeto.