Python类全局NameError

时间:2016-03-14 17:21:49

标签: python class nameerror

我正在上课,我写了一个简单的程序来更好地理解它们。该程序基本上是一个打开文件的类。但是,我一直在:

  

NameError:未定义全局名称“book”

我认为在self.book = book方法中初始化__init__会让我将其传递给下一个方法。但这不起作用。如何将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,并确保有效。

1 个答案:

答案 0 :(得分:1)

将变量书添加到类构造函数中。

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

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