Python - Clases Abstractas con Métodos & Atributos
#Python - Clases métodos atributos
#14 ejemplos de una clase con múltiples métodos y múltiples atributos en Python:
#1. Clase "Persona" con atributos "nombre", "edad" y "profesión" y métodos "presentarse" y "trabajar".
class Persona:
def __init__(self, nombre, edad, profesion):
self.nombre = nombre
self.edad = edad
self.profesion = profesion
def presentarse(self):
print("Hola, mi nombre es", self.nombre, "y tengo", self.edad, "años.")
def trabajar(self):
print("Soy", self.nombre, "y trabajo como", self.profesion)
per1 = Persona("Juan",38,"Maestro")
per2 = Persona("Marta",27,"Consejera")
per1.presentarse();
per2.presentarse();
per1.trabajar();
per2.trabajar();
#2. Clase "Coche" con atributos "marca", "modelo" y "año" y métodos "acelerar" y "frenar".
class Coche:
def __init__(self, marca, modelo, ano):
self.marca = marca
self.modelo = modelo
self.ano = ano
def acelerar(self):
print("El coche", self.marca, self.modelo, "está acelerando.")
def frenar(self):
print("El coche", self.marca, self.modelo, "está frenando.")
coc1 = Coche("TOYOTA","COROLLA",2021)
coc2 = Coche("KIA","RIO",2022)
coc1.acelerar();
coc2.acelerar();
coc1.frenar();
coc2.frenar();
#3. Clase "Cuenta bancaria" con atributos "titular", "saldo" y "número de cuenta" y métodos "depositar" y "retirar".
class CuentaBancaria:
def __init__(self, titular, saldo, numero_cuenta):
self.titular = titular
self.saldo = saldo
self.numero_cuenta = numero_cuenta
def depositar(self, cantidad):
self.saldo += cantidad
print("Se han depositado", cantidad, "en la cuenta de", self.titular)
def retirar(self, cantidad):
if cantidad > self.saldo:
print("No hay suficiente saldo en la cuenta de", self.titular)
else:
self.saldo -= cantidad
print("Se han retirado", cantidad, "de la cuenta de", self.titular)
CB1 = CuentaBancaria("Vince",350,982021)
CB2 = CuentaBancaria("Katia",230,722022)
CB1.depositar(80);
CB2.depositar(60);
CB1.retirar(40);
CB2.retirar(30);
#4. Clase "Animal" con atributos "especie", "edad" y "nombre" y métodos "comer" y "dormir".
class Animal:
def __init__(self, especie, edad, nombre):
self.especie = especie
self.edad = edad
self.nombre = nombre
def comer(self):
print(self.nombre, "está comiendo.")
def dormir(self):
print(self.nombre, "está durmiendo.")
ani1 = Animal("Puma",7,"Perdita")
ani2 = Animal("León Africano",8,"Casper")
ani1.comer();
ani2.comer();
ani1.dormir();
ani2.dormir();
#5. Clase "Libro" con atributos "título", "autor" y "año de publicación" y métodos "leer" y "prestar".
class Libro:
def __init__(self, titulo, autor, ano_publicacion):
self.titulo = titulo
self.autor = autor
self.ano_publicacion = ano_publicacion
def leer(self):
print("Estoy leyendo el libro", self.titulo, "de", self.autor)
def prestar(self, persona):
print("El libro", self.titulo, "ha sido prestado a", persona)
lib1 = Libro("Python para Principiantes","",2020)
lib2 = Libro("Curso intensivo de Python","Eric Matthes",2021)
lib1.leer();
lib2.leer();
lib1.prestar("Arlene");
lib2.prestar("Bret");
#6. Clase "Película" con atributos "título", "director" y "año de estreno" y métodos "ver" y "recomendar".
class Pelicula:
def __init__(self, titulo, director, ano_estreno):
self.titulo = titulo
self.director = director
self.ano_estreno = ano_estreno
def ver(self):
print("Estoy viendo la película ", self.titulo, "dirigida por ", self.director)
def recomendar(self, persona):
print("La película ", self.titulo, "ha sido recomendada a ", persona)
pel1 = Libro("Python para Principiantes","",2020)
pel2 = Libro("Curso intensivo de Python","Eric Matthes",2021)
pel1.leer();
pel2.leer();
pel1.prestar("Arlene");
pel2.prestar("Bret");
#7. Clase "Restaurante" con atributos "nombre", "tipo de comida" y "ubicación" y métodos "reservar" y "ordenar".
class Restaurante:
def __init__(self, nombre, tipo_comida, ubicacion):
self.nombre = nombre
self.tipo_comida = tipo_comida
self.ubicacion = ubicacion
def reservar(self, personas):
print("Se ha reservado una mesa para", personas, "en el restaurante", self.nombre, "ubicado en", self.ubicacion)
def ordenar(self, plato):
print("Se ha ordenado el plato", plato, "en el restaurante", self.nombre)
res1 = Restaurante("Pizza Libre","Pizza","Jayuya")
res2 = Restaurante("Tacos Libre","Tacos","Caguas")
res1.reservar(3);
res2.reservar(4);
res1.ordenar("Calzón");
res2.ordenar("Burrito");
#8. Clase "Estudiante" con atributos "nombre", "edad" y "carrera" y métodos "estudiar" y "socializar".
class Estudiante:
def __init__(self, nombre, edad, carrera):
self.nombre = nombre
self.edad = edad
self.carrera = carrera
def estudiar(self):
print(self.nombre, "está estudiando", self.carrera)
def socializar(self):
print(self.nombre, "está socializando con sus compañeros de clase.")
est1 = Estudiante("Franklin",13,"Ciencias")
est2 = Estudiante("Idalia",15,"Artes")
est1.estudiar();
est2.estudiar();
est1.socializar();
est2.socializar();
#9. Clase "Empleado" con atributos "nombre", "puesto" y "salario" y métodos "trabajar" y "pedir aumento".
class Empleado:
def __init__(self, nombre, puesto, salario):
self.nombre = nombre
self.puesto = puesto
self.salario = salario
def trabajar(self):
print(self.nombre, "está trabajando como", self.puesto)
def pedir_aumento(self, cantidad):
self.salario += cantidad
print(self.nombre, "ha recibido un aumento de", cantidad, "y ahora gana", self.salario)
emp1 = Empleado("Emily","Ciencias",13)
emp2 = Empleado("Don","Artes",15)
emp1.trabajar();
emp2.trabajar();
emp1.pedir_aumento(32);
emp2.pedir_aumento(25);
#10. Clase "Producto" con atributos "nombre", "precio" y "cantidad en stock" y métodos "vender" y "reabastecer".
class Producto:
def __init__(self, nombre, precio, cantidad_stock):
self.nombre = nombre
self.precio = precio
self.cantidad_stock = cantidad_stock
def vender(self, cantidad):
if cantidad > self.cantidad_stock:
print("No hay suficiente stock de", self.nombre)
else:
self.cantidad_stock -= cantidad
print("Se han vendido", cantidad, "de", self.nombre)
def reabastecer(self, cantidad):
self.cantidad_stock += cantidad
print("Se han reabastecido", cantidad, "de", self.nombre)
emp1 = Producto("Compás",4.1,9)
emp2 = Producto("Transportador",4.95,11)
emp1.vender(5);
emp2.vender(15);
emp1.reabastecer(50);
emp2.reabastecer(50);
#11. Clase "Músico" con atributos "nombre", "instrumento" y "género musical" y métodos "tocar" y "grabar".
class Musico:
def __init__(self, nombre, instrumento, genero_musical):
self.nombre = nombre
self.instrumento = instrumento
self.genero_musical = genero_musical
def tocar(self):
print(self.nombre, "está tocando el", self.instrumento)
def grabar(self):
print(self.nombre, "está grabando una canción de", self.genero_musical)
mus1 = Musico("Ricardo","guitarra","clásica")
mus2 = Musico("Sofía","cuatro","navidad")
mus1.tocar();
mus2.tocar();
mus1.grabar();
mus2.grabar();
#12. Clase "Tienda" con atributos "nombre", "tipo de productos" y "ubicación" y métodos "vender" y "reabastecer".
class Tienda:
def __init__(self, nombre, tipo_productos, ubicacion):
self.nombre = nombre
self.tipo_productos = tipo_productos
self.ubicacion = ubicacion
def vender(self, producto):
print("Se ha vendido un", producto, "en la tienda", self.nombre)
def reabastecer(self, producto, cantidad):
print("Se han reabastecido", cantidad, "de", producto, "en la tienda", self.nombre)
tie1 = Tienda("Andrea Helados","Helados","Lares")
tie2 = Tienda("Carlos Frappe","Frappe","Yauco")
tie1.vender("Fresa");
tie2.vender("Coco");
tie1.reabastecer("Fresa",4);
tie2.reabastecer("Coco",3);
#13. Clase "Avión" con atributos "modelo", "año de fabricación" y "capacidad de pasajeros" y métodos "despegar" y "aterrizar".
class Avion:
def __init__(self, modelo, ano_fabricacion, capacidad_pasajeros):
self.modelo = modelo
self.ano_fabricacion = ano_fabricacion
self.capacidad_pasajeros = capacidad_pasajeros
def despegar(self):
print("El avión", self.modelo, "está despegando.")
def aterrizar(self):
print("El avión", self.modelo, "está aterrizando.")
avi1 = Avion("Airbus A700",2007,480)
avi2 = Avion("Airbus A380",2011,850)
avi1.despegar();
avi2.despegar();
avi1.aterrizar();
avi2.aterrizar();
#14. Clase "Casa" con atributos "ubicación", "número de habitaciones" y "precio" y métodos "vender" y "alquilar".
class Casa:
def __init__(self, ubicacion, num_habitaciones, precio):
self.ubicacion = ubicacion
self.num_habitaciones = num_habitaciones
self.precio = precio
def vender(self):
print("La casa en", self.ubicacion, "se ha vendido por", self.precio)
def alquilar(self, meses):
total = self.precio * meses
print("La casa en", self.ubicacion, "se ha alquilado por", meses, "meses por un total de", total, "dólares.")
cas1 = Casa("Mayaguez",4,970)
cas2 = Casa("Arecibo",5,1100)
cas1.vender();
cas2.vender();
cas1.alquilar(8);
cas2.alquilar(6);