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

基于用户输入添加图书至库存列表时遇“str not callable”错误求助

问题解决:添加图书到库存列表时的"str not callable"错误

错误原因

你代码里的核心问题是错误地将列表的append方法当成变量赋值,而不是调用该方法。具体来说这一行:

inventory.append = (title, author, isbn, callnumber, stock, loaned)

这种写法会把元组覆盖掉原本的append方法引用,后续任何对append的调用都会因为它变成非可调用的元组/字符串类型,从而抛出"str not callable"错误。

修正后的代码

# Add a book, based on user input 
def add_book():
    # purpose: add a book
    print()
    print("Adding a New Book..")
    print()
        
    title = input("Title> ")
    author = input("Author> ")
    isbn = input("ISBN> ")
    callnumber = input("CallNumber> ")
    # 库存和借出数量建议转为整数,符合数值类型的实际用途
    stock = int(input("Stock> "))
    loaned = int(input("Loaned> "))        
    # 正确调用append方法,传入图书信息元组
    inventory.append((title, author, isbn, callnumber, stock, loaned))

额外注意事项

  • 必须确保inventory是预先在函数外定义好的列表,比如初始化语句:inventory = [],否则会触发"name 'inventory' is not defined"错误。
  • 如果stock和loaned允许非整数值(如小数),可以改用float()转换;若业务需求确实需要保留字符串形式,直接保留input()的返回值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:45:32