Modificar Atributos

En Python, después de crear una instancia de una clase, no estás limitado a los valores asignados durante la inicialización. Puedes modificar directamente los atributos de una instancia. Por ejemplo, usemos nuestra clase Book de antes. Después de crear una instancia de Book, tal vez quieras actualizar el número de páginas o el nombre del autor. Puedes lograr esto accediendo directamente al atributo usando el operador punto ., y asignando un nuevo valor:
class Book:
    def __init__(self, title, author, pages):
        self.title = title     # Asignar el título a la instancia del libro
        self.author = author   # Asignar el autor a la instancia del libro
        self.pages = pages     # Asignar el número de páginas a la instancia del libro
        self.is_read = False   # El libro aún no ha sido leído


book1 = Book('To Kill a Mockingbird', 'Harper Lee', 281)

print(book1.pages)            # 281
book1.pages = 324             # Actualizar el número de páginas
print(book1.pages)            # 324

print(book1.author)           # 'Harper Lee'
book1.author = 'Lee, Harper'  # Actualizar el nombre del autor
print(book1.author)           # 'Lee, Harper'

Desafío: Crear una Clase Book

Tu tarea es diseñar una clase Book con cuatro atributos:
  • title: por defecto "Libro sin título"
  • author: por defecto "Autor desconocido"
  • price: por defecto 0.0
  • quantity_in_stock: por defecto 0
La clase debe inicializar todos los atributos con estos valores predeterminados en su constructor (el método __init__ no debe tomar ningún argumento). La clase también debe incluir un método display para mostrar los atributos actuales del libro en un formato legible. El formato debe ser "Título: [title], Autor: [author], Precio: [price], Cantidad en stock: [quantityinstock]".
El programa luego tomará dos líneas de entrada. La primera línea contiene el nombre de un atributo (title, author, price, quantity_in_stock). La segunda línea contiene un valor para ese atributo.
Tu programa debe asignar este nuevo valor al atributo especificado en la entrada, y luego llamar al método display en el objeto Book para imprimir los atributos actuales del libro.
Entrada
Salida
title War and Peace
Title: War and Peace, Author: Unknown Author, Price: 0.0, Quantity in stock: 0
quantityinstock 20
Title: Untitled Book, Author: Unknown Author, Price: 0.0, Quantity in stock: 20
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue