Simulacro de Examen - Programación Orientada a Objetos (Python)
Código base proporcionado:
class Producto:
def __init__(self, nombre, precio):
[Link] = nombre
[Link] = precio
def aplicar_descuento(self, porcentaje):
[Link] -= [Link] * (porcentaje / 100)
def __str__(self):
return f"{[Link]} cuesta {[Link]:.2f}EUR"
Parte 1: Análisis
1. ¿Qué representa la clase Producto?
2. ¿Qué función cumple el método __init__?
3. ¿Qué hace el método aplicar_descuento?
4. ¿Qué función cumple __str__ y cuándo se ejecuta?
5. ¿Qué representa self dentro de la clase?
6. ¿Qué imprimirá este código?
p = Producto("Camiseta", 20)
p.aplicar_descuento(25)
print(p)
Parte 2: Modificación del código
7. Añade un nuevo atributo llamado categoria en el constructor y actualiza el método __str__ para que
también la muestre.
8. Añade un nuevo método llamado subir_precio que aumente el precio un porcentaje indicado.
Simulacro de Examen - Programación Orientada a Objetos (Python)
Parte 3: Ejecución simulada (punto extra)
9. Escribe el código completo modificado, crea un objeto de la clase, y prueba los métodos
aplicar_descuento y subir_precio. Usa print() para comprobar que funciona.
Soluciones - Parte 1: Análisis
1. Representa un producto con un nombre y un precio.
2. Es el constructor. Inicializa los atributos del objeto.
3. Aplica un descuento al precio restando un porcentaje.
4. Devuelve una representación textual del objeto para print().
5. Referencia al objeto actual.
6. Salida: Camiseta cuesta 15.00EUR
Soluciones - Parte 2: Código modificado
class Producto:
def __init__(self, nombre, precio, categoria):
[Link] = nombre
[Link] = precio
[Link] = categoria
def aplicar_descuento(self, porcentaje):
[Link] -= [Link] * (porcentaje / 100)
def subir_precio(self, porcentaje):
[Link] += [Link] * (porcentaje / 100)
def __str__(self):
return f"{[Link]} ({[Link]}) cuesta {[Link]:.2f}EUR"
Soluciones - Parte 3: Código de prueba
Simulacro de Examen - Programación Orientada a Objetos (Python)
# Pruebas
p = Producto("Sudadera", 50, "Ropa")
print(p) # Sudadera (Ropa) cuesta 50.00EUR
p.aplicar_descuento(10)
print(p) # Sudadera (Ropa) cuesta 45.00EUR
p.subir_precio(20)
print(p) # Sudadera (Ropa) cuesta 54.00EUR