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

PyCharm中图书馆管理系统报错:NameError及参数问题求助

图书馆管理系统报错排查与解决

1. 先解决NameError: name 'name' is not defined

这个错误的核心是你实例化Library类时用到的变量name未定义。比如你写了lib = Library(name),但代码里从没给name赋值过。你后来手动定义name = 'Mizakson'后这个错误消失,说明问题根源就是变量未定义,这一步的处理是对的。

2. 解决Library() takes no arguments

这个报错说明你的Library类的构造方法(__init__)不接受除self之外的参数,但你实例化时传了name进去。

错误示例:

如果你的类是这样写的,就会触发这个错误:

class Library:
    def __init__(self):
        # 没有定义其他参数
        pass

修正方法:

给__init__方法加上需要的参数(比如name),同时可以把读取pythonDatabase.txt的逻辑整合进去:

class Library:
    def __init__(self, name):
        self.library_name = name  # 保存图书馆名称
        self.books = self._load_books_from_file()  # 加载书籍
    
    def _load_books_from_file(self):
        # 从pythonDatabase.txt读取书籍
        book_list = []
        try:
            with open('pythonDatabase.txt', 'r', encoding='utf-8') as f:
                for line in f:
                    book_title = line.strip()
                    if book_title:  # 跳过空行
                        book_list.append(book_title)
        except FileNotFoundError:
            print("错误:未找到pythonDatabase.txt文件")
        return book_list

实例化代码:

现在可以正常实例化了:

name = 'Mizakson'
my_library = Library(name)

额外注意事项

  • 确保pythonDatabase.txt文件在PyCharm的当前工作目录下(可以通过打印import os; print(os.getcwd())查看当前路径),如果不在,需要调整文件路径或者把文件移到对应目录。
  • 如果文件编码有问题,打开时指定encoding='utf-8'避免乱码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:50:22