Visão Geral do Projeto
Parte da seção Object Oriented Programming do Journey de Python da Coddy — lição 55 de 64.
Desafio
MédioNeste desafio, você implementará a base para um Sistema de Gerenciamento de Biblioteca.
Edite library.py para implementar as classes necessárias seguindo os comentários TODO. O arquivo driver contém cenários de teste extensivos que validam sua implementação.
- Siga os comentários TODO em
library.pypara orientação passo a passo - Implemente a classe
Librarycom a inicialização e representação de string adequadas
Folha de consulta
O desafio foca na implementação de um Sistema de Gerenciamento de Biblioteca com uma estrutura de classe adequada e métodos de representação de string. Nenhum conteúdo de lição específico foi fornecido para criar uma folha de dicas abrangente.
Experimente você mesmo
# TODO: Importar a classe Library de library.py
# Use o formato: from library import Library
# Manipulador abrangente de casos de teste
test_case = input()
if test_case == "basic_library_creation":
# TODO: Criar uma biblioteca com o nome "Test Library"
# TODO: Imprimir o objeto da biblioteca (isso chamará o método __str__)
pass
elif test_case == "library_attributes":
# TODO: Criar uma biblioteca com o nome "Test Library"
# TODO: Imprimir o atributo name da biblioteca no formato: Name: Test Library
# TODO: Imprimir o comprimento da lista books no formato: Books: 0
# TODO: Imprimir o comprimento da lista users no formato: Users: 0
# Dica: Use f-strings, ex: print(f"Name: {library.name}")
pass
elif test_case == "multiple_libraries":
# TODO: Criar duas bibliotecas diferentes com os nomes "Library 1" e "Library 2"
# TODO: Imprimir ambos os objetos da biblioteca
pass
elif test_case == "empty_name":
# TODO: Criar uma biblioteca com uma string vazia como nome
# TODO: Imprimir o objeto da biblioteca
pass
elif test_case == "special_characters":
# TODO: Criar uma biblioteca com o nome "!@#$%^&*()"
# TODO: Imprimir o objeto da biblioteca
pass
elif test_case == "very_long_name":
# TODO: Criar uma biblioteca com um nome de exatamente 100 caracteres 'A' (use "A" * 100)
# TODO: Imprimir o objeto da biblioteca
pass
elif test_case == "add_books_users":
# TODO: Criar uma biblioteca com o nome "Test Library"
# TODO: Adicionar estes itens à lista books: ["Book1", "Book2", "Book3"]
# TODO: Adicionar estes itens à lista users: ["User1", "User2"]
# TODO: Imprimir o objeto da biblioteca (deve mostrar as contagens atualizadas)
pass
elif test_case == "empty_lists":
# TODO: Criar uma biblioteca com o nome "Test Library"
# TODO: Imprimir o comprimento da lista books no formato: Books length: 0
# TODO: Imprimir o comprimento da lista users no formato: Users length: 0
# Dica: Use f-strings, ex: print(f"Books length: {len(library.books)}")
pass
elif test_case == "type_validation":
# TODO: Criar uma biblioteca com o inteiro 123 como nome
# TODO: Imprimir o objeto da biblioteca (deve converter para string)
passTodas as lições de Object Oriented Programming
1Fundamentos de POO
Arquivos ExternosIntrodução à POOClasses vs ObjetosO Parâmetro selfMétodosAtributosMétodo Construtor (__init__)Recapitulação - Calculadora Simples4Herança
Herança BásicaA Função super()Sobrescrita de MétodoHerança MúltiplaOrdem de Resolução de MétodosRecapitulação - Hierarquia de Funcionários7Métodos Especiais
Introdução aos Métodos MágicosSobrecarga de OperadoresMétodos Mágicos de ContêinerRecapitulação - Lista Personalizada10Padrões de Projeto Parte 1
Introdução a Padrões de ProjetoPadrão SingletonPadrão FactoryPadrão ObserverPadrão Strategy2Decoradores
Introdução aos DecoradoresDecorador de PropriedadeDecorador de Método EstáticoDecorador de Método de Classe5Polimorfismo
Sobrescrita de Método RevisitadaDuck TypingClasses e Métodos AbstratosDesign de InterfacesRecapitulação - Calculadora de Formas8Conceitos Avançados de POO
Composição vs HerançaMixinsMétodos Estáticos e de ClasseDecoradores de ClasseGerenciadores de Contexto11Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão Composite3Propriedades de Classe
Variáveis de Instância vs de ClasseDecoradores de PropriedadeAtributos PrivadosRecapitulação - Gerenciador de Conta Bancária6Encapsulamento
Membros Públicos, Protegidos e PrivadosModificadores de AcessoOcultação de InformaçãoProperty Decorators AvançadosRecapitulação - Sistema de Registro de Alunos12Projeto: Gerenciamento de Biblioteca
Visão Geral do ProjetoClasses Livro e Usuário