0
respostas

[Sugestão] Hora da prática: criando classes, construtores e métodos

livros.py

class Livros:
    lista_livros = []
    def __init__(self, titulo, autor, ano_publicacao):
        self.titulo = titulo
        self.autor = autor
        self.ano_publicacao = ano_publicacao
        self.disponivel = True
        Livros.lista_livros.append(self)

    def verificar_disponibilidade(ano_livro):
        print(f'{'Titulo'.ljust(50)} | {'Autor'.ljust(30)} | {'Ano publicação'.ljust(30)} | {'Ativo'}')
        for livro in Livros.lista_livros:
            if ano_livro == livro.ano_publicacao:
                print(f'{livro.titulo.ljust(50)} | {livro.autor.ljust(30)} | {livro.ano_publicacao.ljust(30)} | {livro.disponivel}')
                



    def __str__(self):
        return f'{self.titulo} | {self.autor} | {self.ano_publicacao}'
    
    @classmethod
    def lista_de_livros(cls):
        print(f'{'Titulo'.ljust(50)} | {'Autor'.ljust(30)} | {'Ano publicação'.ljust(30)} | {'Ativo'}')
        for livro in cls.lista_livros:
            print(f'{livro.titulo.ljust(50)} | {livro.autor.ljust(30)} | {livro.ano_publicacao.ljust(30)} | {livro.disponivel}')
   
    def emprestar(self):
        self.disponivel = False

biblioteca.py

from livros import Livros

livro_01 = Livros('Mais esperto que o diabo', 'Napoleão Rios', '2023')
livro_02 = Livros('Os 7 Habitos das pessoas altamente eficazes', 'Stephen R. Covey', '2017')


def main():
    Livros.lista_de_livros()
    livro_01.emprestar()
    print('Livros emprestados\n')
    Livros.lista_de_livros()
    print('Livros disponiveis de acordo com o ano informado')
    Livros.verificar_disponibilidade('2017')




if __name__ == '__main__':
    main()

main.py

from livros import Livros

livro_01 = Livros('Mais esperto que o diabo', 'Napoleão Rios', '2023')
livro_02 = Livros('Os 7 Habitos das pessoas altamente eficazes', 'Stephen R. Covey', '2017')

print(livro_01)
print(livro_02)