Python 类 全局名称错误

Python Classes Global NameError

我正在学习 classes,并且我编写了一个简单的程序来更好地理解它们。该程序基本上是一个 class 打开文件。但是,我不断收到:

NameError: global name 'book' is not defined

我认为在 __init__ 方法中初始化 self.book = book 将使我能够将它传递给下一个方法。但这不起作用。如何将 self.book 传递给 open_file 方法?

class AnalyzeBook(object):
    def __init__(self, filename, book):
        self.filename = filename
        self.book = book

    def open_file(self, filename, book):

        with open(self.filename) as f:
            self.book = f.readlines()

            return self.book


book_analysis = AnalyzeBook('lordoftherings.txt', book=None)
book_analysis.open_file('lordoftherings.txt', book=None)

编辑: 更新我的代码以将书籍添加到 __init__book=None 并且有效。

将变量 book 添加到您的 class 构造函数。

def __init__(self, filename, book):
    self.filename = filename
    self.book = book

当您初始化 AnalyzeBook 的实例时 class,还要提供 book 变量。