Modificar Atributos

Em Python, após criar uma instância de uma classe, não está limitado aos valores atribuídos durante a inicialização. Pode modificar diretamente os atributos de uma instância. Por exemplo, vamos usar a nossa classe Book de antes. Depois de criar uma instância de Book, pode querer atualizar o número de páginas ou o nome do autor. Pode conseguir isso acedendo diretamente ao atributo usando o operador ponto ., e atribuindo um novo valor:
class Book:
    def __init__(self, title, author, pages):
        self.title = title     # Atribuir o título à instância do livro
        self.author = author   # Atribuir o autor à instância do livro
        self.pages = pages     # Atribuir o número de páginas à instância do livro
        self.is_read = False   # O livro ainda não foi lido


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

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

print(book1.author)           # 'Harper Lee'
book1.author = 'Lee, Harper'  # Atualizar o nome do autor
print(book1.author)           # 'Lee, Harper'

Desafio: Criar uma Classe Book

A sua tarefa é criar uma classe Book com quatro atributos:
  • title: padrão "Untitled Book"
  • author: padrão "Unknown Author"
  • price: padrão 0.0
  • quantity_in_stock: padrão 0
A classe deve inicializar todos os atributos com estes valores padrão no seu construtor (o método __init__ não deve aceitar argumentos). A classe também deve incluir um método display para mostrar os atributos atuais do livro num formato legível. O formato deve ser "Title: [title], Author: [author], Price: [price], Quantity in stock: [quantityinstock]".
O programa irá então receber duas linhas de entrada. A primeira linha contém o nome de um atributo (title, author, price, quantity_in_stock). A segunda linha contém um valor para esse atributo.
O seu programa deve atribuir este novo valor ao atributo especificado na entrada e, em seguida, chamar o método display no objeto Book para imprimir os atributos atuais do livro.
Entrada
Saída
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