Обзор проекта
Часть раздела Объектно-ориентированное программирование путешествия по Python на Coddy. Урок 55 из 64.
Задание
СреднеВ этом задании ты реализуешь основу системы управления библиотекой.
Отредактируй library.py, чтобы реализовать требуемые классы, следуя комментариям TODO. Файл драйвера содержит обширные сценарии тестирования, которые проверяют твою реализацию.
- Следуй комментариям TODO в
library.pyдля пошаговых инструкций - Реализуй класс
Libraryс корректной инициализацией и строковым представлением
Попробуйте сами
from library import Library
# Обработчик всех тестовых случаев
test_case = input()
if test_case == "basic_library_creation":
library_name = "Test Library"
library = Library(library_name)
print(library)
elif test_case == "library_attributes":
library = Library("Test Library")
print(f"Name: {library.name}")
print(f"Books: {len(library.books)}")
print(f"Users: {len(library.users)}")
elif test_case == "multiple_libraries":
library1 = Library("Library 1")
library2 = Library("Library 2")
print(library1)
print(library2)
elif test_case == "empty_name":
library = Library("")
print(library)
elif test_case == "special_characters":
library = Library("!@#$%^&*()")
print(library)
elif test_case == "very_long_name":
long_name = "A" * 100
library = Library(long_name)
print(library)
elif test_case == "add_books_users":
library = Library("Test Library")
library.books.extend(["Book1", "Book2", "Book3"])
library.users.extend(["User1", "User2"])
print(library)
elif test_case == "empty_lists":
library = Library("Test Library")
print(f"Books length: {len(library.books)}")
print(f"Users length: {len(library.users)}")
elif test_case == "type_validation":
library = Library(123)
print(library)Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Внешние файлыВведение в ООПКлассы и объектыПараметр selfМетодыАтрибутыМетод-конструктор (__init__)Повторение — Простой калькулятор4Наследование
Базовое наследованиеФункция super()Переопределение методовМножественное наследованиеПорядок разрешения методовИтоги — Иерархия сотрудников7Специальные методы
Введение в магические методыПерегрузка операторовМагические методы контейнеровПовторение — Пользовательский список10Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн ObserverПаттерн Strategy5Полиморфизм
Снова о переопределении методовУтиная типизацияАбстрактные классы и методыПроектирование интерфейсовИтоги — Калькулятор фигур8Продвинутые концепции ООП
Композиция против наследованияМиксиныСтатические методы и методы классаДекораторы классовМенеджеры контекста11Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн Компоновщик3Свойства классов
Переменные экземпляра и классаДекораторы свойствПриватные атрибутыИтоги — Менеджер банковского счета6Инкапсуляция
Public, Protected, Private члены классаМодификаторы доступаСокрытие данныхДекораторы property: продвинутый уровеньИтоги: Система учета студентов12Проект: Управление библиотекой
Обзор проектаКлассы Book и UserСистема выдачи книгФункционал поискаИнтерфейс администратораТестирование и интеграцияПотренируйтесь самостоятельно: Онлайн-компилятор Python