我正在上课,我写了一个简单的程序来更好地理解它们。该程序基本上是一个打开文件的类。但是,我一直在:
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
,并确保有效。
答案 0 :(得分:1)
将变量书添加到类构造函数中。
def __init__(self, filename, book):
self.filename = filename
self.book = book
初始化AnalyzeBook类的实例时,还要提供book变量。