Update Python Ofensivo

This commit is contained in:
Manuel Vergara 2023-12-20 18:51:37 +01:00
parent be1177090b
commit 9d7531b0f1
3 changed files with 99 additions and 0 deletions

View File

@ -0,0 +1,34 @@
#!/usr/bin/env python3
"""
Ejemplo de clases y objetos en Python
"""
class rectangulo:
def __init__(self, base, altura):
self.base = base
self.altura = altura
@property
def area(self):
return self.base * self.altura
# Propiedad especiales de la clase
def __str__(self):
return f"\n[+]Propiedades del rectangulo:\n\t[+] Base: {self.base}\n\t[+] Altura: {self.altura}\n"
def __eq__(self, otro):
return self.base == otro.base and self.altura == otro.altura
rect1 = rectangulo(3, 4)
rect2 = rectangulo(3, 4)
print(rect1)
print(f"[+] El area del rectangulo es: {rect1.area}\n")
print(f"[+] ¿Son iguales rect1 y rect2? --> {rect1 == rect2}\n")

View File

@ -0,0 +1,65 @@
#!/usr/bin/env python3
"""
Ejemplo de clases y objetos en Python
"""
class Libro:
bestseller_value = 5000 # Variable de clase
IVA = 0.21 # Variable de clase
def __init__(self, titulo, autor, precio, ventas=7000):
self.titulo = titulo
self.autor = autor
self.precio = precio
self.ventas = ventas
def __str__(self):
return "\n[*] {} escrito por {} tiene un precio de {} euros y se ha vendido {} veces.\n".format(
self.titulo,
self.autor,
self.precio,
self.ventas
)
@staticmethod # Decorador
def es_best_seller(ventas):
if ventas > Libro.bestseller_value: # Las variables de clase se llaman con el nombre de la clase
return f"[*] Lo ha petado.\n"
else:
return f"[*] No lo ha petado.\n"
@classmethod # Decorador
def precio_con_iva(cls, precio):
precio_con_iva = precio * (1 + cls.IVA) # Las variables se llama con el nombre de la clase
return round(precio_con_iva, 2)
class LibroDigital(Libro):
IVA = 0.10
# Instancia
mi_libro = Libro("El Quijote", "Miguel de Cervantes", 18.7)
mi_libro_digital = LibroDigital("El Quijote", "Miguel de Cervantes", 18.7)
print(
mi_libro
)
# Con el decorador no tienes por qué instanciar el objeto, puedes hacerlo a la clase.
print(
Libro.es_best_seller(mi_libro.ventas)
)
print(
f"[*] El precio con IVA es de {Libro.precio_con_iva(mi_libro.precio)} euros.\n"
)
print(
f"[*] El precio con IVA del libro digital es de {LibroDigital.precio_con_iva(mi_libro_digital.precio)} euros.\n"
)