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 变量。
我正在学习 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 变量。