Python图书馆管理系统:面向对象编程实战

想学习如何使用Python构建一个简单的图书馆管理系统吗?本文将带你逐步创建一个包含书籍类和图书馆类的系统,并演示如何添加书籍、借阅和归还书籍。

代码示例pythonclass Book: def init(self, title, author, publish_date): self.title = title self.author = author self.publish_date = publish_date self.is_borrowed = False def get_info(self): return f'书名:{self.title} 作者:{self.author} 出版日期:{self.publish_date} 是否借出:{'是' if self.is_borrowed else '否'}'

class Library: books = [] @staticmethod def add_book(book): Library.books.append(book) @staticmethod def borrow_book(book_name): for book in Library.books: if book.title == book_name and not book.is_borrowed: book.is_borrowed = True return f'成功借阅《{book_name}》' return f'《{book_name}》不可借阅或不存在' @staticmethod def return_book(book_name): for book in Library.books: if book.title == book_name and book.is_borrowed: book.is_borrowed = False return f'成功归还《{book_name}》' return f'《{book_name}》不可归还或不存在'

创建书籍对象并添加到图书馆book1 = Book('Python基础教程', 'Magnus Lie Hetland', '2020-01-01')book2 = Book('Java编程思想', 'Bruce Eckel', '2019-08-01')Library.add_book(book1)Library.add_book(book2)

借阅和归还书籍的示例print(Library.borrow_book('Python基础教程')) # 成功借阅《Python基础教程》print(Library.borrow_book('Python基础教程')) # 《Python基础教程》不可借阅或不存在print(Library.return_book('Python基础教程')) # 成功归还《Python基础教程》print(Library.return_book('Python基础教程')) # 《Python基础教程》不可归还或不存在

打印图书馆中所有书籍信息for book in Library.books: print(book.get_info())

代码解析

  1. Book: - 表示书籍,包含标题 (title)、作者 (author)、出版日期 (publish_date) 和借阅状态 (is_borrowed) 属性。 - get_info 方法返回书籍的详细信息。

  2. Library: - 表示图书馆,包含一个存储所有书籍的列表 (books)。 - add_book 方法用于向图书馆添加书籍。 - borrow_book 方法用于借阅书籍,如果书籍存在且未被借阅,则将 is_borrowed 设置为 True。 - return_book 方法用于归还书籍,如果书籍存在且已被借阅,则将 is_borrowed 设置为 False

运行结果

成功借阅《Python基础教程》《Python基础教程》不可借阅或不存在成功归还《Python基础教程》《Python基础教程》不可归还或不存在书名:Python基础教程 作者:Magnus Lie Hetland 出版日期:2020-01-01 是否借出:否书名:Java编程思想 作者:Bruce Eckel 出版日期:2019-08-01 是否借出:否

总结

本示例展示了如何使用Python类和对象创建简单的图书馆管理系统。你可以根据自己的需求扩展此系统,例如添加用户类、实现数据库持久化等功能,进一步学习和实践面向对象编程。

Python图书馆管理系统:面向对象编程实战

原文地址: https://www.cveoy.top/t/topic/pW1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录