Python类全局名称

2024-04-26 14:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习课程,我写了一个简单的程序来更好地理解它们。这个程序基本上是一个打开文件的类。然而,我不断得到:

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中,这样做有效。你知道吗


Tags: 方法self程序txtnoneinitdefanalysis
1条回答
网友
1楼 · 发布于 2024-04-26 14:13:29

将变量book添加到类构造函数中。你知道吗

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

初始化AnalyzeBook类的实例时,还需要提供book变量。你知道吗

相关问题 更多 >