You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现用户每次输入后自动创建Book类实例并可重复调用

自动创建并管理Book类实例的解决方案

不用手动定义book1、book2这类变量,直接用**容器(列表或字典)**统一存储实例就行,既能自动创建,又方便后续调用。下面是两种实用实现方式:

方法一:用列表存储实例

列表会按创建顺序保存所有Book实例,通过索引就能调用(比如books[0]对应第一个创建的实例,相当于book1)。

class Book(object):
    def __init__(self, title: str, author: str, isbn: int, genre: str, numCopies: int):
        self._title = title
        self._author = author
        self._isbn = isbn
        self._genre = genre
        self._numCopies = numCopies

# 用列表存储所有书籍实例
books = []
book_count = 1

while True:
    print(f"\n请输入第{book_count}本图书信息(输入空标题结束)")
    title = input("书名:")
    if not title:  # 输入空标题时退出循环
        break
    author = input("作者:")
    isbn = int(input("ISBN:"))
    genre = input("类别:")
    numCopies = int(input("库存数量:"))
    
    # 创建实例并添加到列表
    new_book = Book(title, author, isbn, genre, numCopies)
    books.append(new_book)
    
    book_count += 1

# 调用实例示例:访问第一本书的书名
if books:
    print(f"\n第一本书的书名:{books[0]._title}")
    # 遍历所有书籍实例
    for idx, book in enumerate(books, 1):
        print(f"\n第{idx}本书信息:")
        print(f"书名:{book._title},作者:{book._author},ISBN:{book._isbn}")

方法二:用字典存储实例

如果需要像book1、book2这样的名称直接调用,可以用字典,把"book1"、"book2"作为键,实例作为值。

class Book(object):
    def __init__(self, title: str, author: str, isbn: int, genre: str, numCopies: int):
        self._title = title
        self._author = author
        self._isbn = isbn
        self._genre = genre
        self._numCopies = numCopies

# 用字典存储所有书籍实例,键为"book1"、"book2"等
book_dict = {}
book_count = 1

while True:
    print(f"\n请输入第{book_count}本图书信息(输入空标题结束)")
    title = input("书名:")
    if not title:
        break
    author = input("作者:")
    isbn = int(input("ISBN:"))
    genre = input("类别:")
    numCopies = int(input("库存数量:"))
    
    # 创建实例并添加到字典
    book_key = f"book{book_count}"
    book_dict[book_key] = Book(title, author, isbn, genre, numCopies)
    
    book_count += 1

# 调用实例示例:直接用"book1"访问
if "book1" in book_dict:
    print(f"\nbook1的书名:{book_dict['book1']._title}")
    # 遍历所有书籍实例
    for key, book in book_dict.items():
        print(f"\n{key}信息:")
        print(f"书名:{book._title},作者:{book._author},ISBN:{book._isbn}")

关键说明

  • 两种方法都不需要手动定义book1、book2,循环会自动完成实例创建和存储
  • 列表适合按顺序批量处理实例,字典适合按自定义名称单独调用
  • 后续需要使用实例时,直接从容器中取出即可,比如books[0]或book_dict['book1']

内容的提问来源于stack exchange,提问作者Moustafa Abouamer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:25:24