/ / Python-Klassen Global NameError [geschlossen] - Python, Klasse, Namensfehler

Python-Klassen Global NameError [geschlossen] - python, class, nameerror

Ich lerne Klassen und habe ein einfaches Programm geschrieben, um sie besser zu verstehen. Das Programm ist im Grunde eine Klasse zum Öffnen von Dateien. Ich bekomme jedoch immer:

NameError: Der globale Name "Buch" ist nicht definiert

Ich dachte das initialisieren self.book = book in dem __init__ Eine Methode würde es mir ermöglichen, sie an die nächste Methode zu übergeben. Aber das funktioniert nicht. Wie kann ich bestehen? self.book auf die open_file Methode?

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)

Bearbeiten: Mein Code wurde aktualisiert, um ein Buch hinzuzufügen __init__ und book=None und das hat funktioniert.

Antworten:

1 für die Antwort № 1

Fügen Sie Ihrem Klassenkonstruktor ein Variablenbuch hinzu.

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

Wenn Sie eine Instanz der AnalyzeBook-Klasse initialisieren, geben Sie auch die Variable book an.