Первый проект по ООП на Python
LibraryApp — простая система управления библиотекой с использованием принципов ООП и абстракций.
- Добавление книг в библиотеку
- Поиск книг:
- по названию
- по жанру
- по типу (книга, eBook, аудиокнига)
- Покупка книг пользователями
- Разные типы пользователей:
- Admin — управление библиотекой
- Reader — просмотр и покупка книг
- Сохранение данных в файлы (
.json)
app.py— основной файл для запуска и тестированияstorage.py— классы для работы с файлами (Storage_libr, Storage_users)models.py— Book, User, Admin, Reader, Typeslibrary_core.py— класс Library и логика добавления/удаления книгsearch.py— стратегия поиска книг (Strategy Pattern)library.json— пример данных книгadmins.json— пример списка админовreaders.json— пример списка пользователей
- Python 3.10
- OOP (классы, наследование, абстрактные классы)
- Enum, статические и класс методы
- Работа с файлами
- Паттерн Strategy для поиска
from storage import Storage_libr, Reader_Storage, Admin_Storage
from models import Types, Book, Admin, Reader
from library_core import Library
def main():
# Создание хранилища книг
storage_libr = Storage_libr('library.json')
data_library = storage_libr.load()
library = Library(storage_libr, data_library)
# Создаем книгу
book = Book('harry potter 1','fantasy', 'Book', 2)
# Добавляем в библиотеку и сохраняем в файл
library.add_book(book)
storage_libr.save(library)
library.add_book(book2)
storage_libr.save(library)
# Создание хранилища пользователей
reader_storage = Reader_Storage()
name = 'Jhon Patrik'
data_users = reader_storage.load(name)
# Создание пользователя
user = Reader(name, data_users)
# Пример покупки книги
result = user.buy('harry potter 1', 1, library)
reader_storage.save(user)
if result == True:
print("You bought succsesfuly")
else:
print("Error no such book in library now")
if __name__ == "__main__":
main()