クラスの作成に関係する短い課題を完了する必要がありますが、コードの問題が何であるかわかりません。これが以下の手順であり、その下に私のコードがあります。エラーの内容とその修正方法を説明してください:
2 クラスを作成します。最初のクラスは「ブック」クラスになります。book クラスには、すべてプライベートな 4 つの変数があります。1 つ目は、false に初期化されたブール値である checkedOut、入力変数によって初期化される文字列である title、入力変数によって初期化される文字列である author、整数であり、またによって初期化される pages です。入力変数。このクラスには、is に関連付けられた 4 つの関数もあります。1 つ目は、変数 checkedOut を返します。2 番目は、checkedOut の値を変更します。値が true に設定されている場合は false に変更され、その逆も同様です。3 番目の関数はページ数を返し、最後の関数はタイトルを返します。book オブジェクトが印刷されるとき、それは「title author pages checkedOut」の形式になります。
2 番目のクラスはライブラリと呼ばれます。ライブラリが初期化されると、コレクションと呼ばれる空の辞書が作成されます。ライブラリ クラスには 2 つの関数があります。最初の関数は addBook と呼ばれ、タイトル、作成者、ページの 3 つの入力変数を受け取ります。この関数では、ブック オブジェクトを作成し、タイトルをキーとして辞書に追加します。2 番目の関数は、書籍のタイトルを取得し、辞書で書籍を検索して、checkedOut ステータスを変更する books 関数を呼び出します。最後に、ライブラリ オブジェクトが印刷されると、ライブラリ内の各本が別々の行に印刷されます。
最後に、ライブラリ クラスが main.py という python プログラムに実装されます。
これが私のコードです:
class Book:
title = str(input("Enter the title of the book. "))
author = str(input("Enter the author of the book. "))
pages = int(input("Enter the number of pages in the book. "))
checkedOut = False
def checked_Out(self):
print(checkedOut)
return checkedOut
def change_value_of_checkedOut(self):
if checkedOut == False:
checkedOut = True
print("Switched from False to True.")
elif checkedOut == True:
checkedOut = False
print("Switched from True to False.")
def return_pages(self):
print(pages)
return pages
def return_title(self):
print(title)
return title
class Library(Book):
def __init__(self):
collection = {}
def addBook(self, title, author, pages):
new_book = Book()
collection[title] = author
def change_checked_out_status(self, title):
if title in collection:
new_book.change_value_of_checkedOut(self)
else:
print("This book is not in the collection.")
ここで私がしたことの何が問題になっていますか? オブジェクトを作成して IDLE でコードを実行しようとすると、特定の変数名が定義されていないというエラーが発生し続けます。