StackOverflowでこれが起こっている他の例を見たことがありますが、答えのいずれも理解できませんでした(私はまだ新しいプログラマーです)。また、私が見た他の例は私のものとまったく同じように見えませんでした。質問。
私はWindows7でPython3.2を実行しています。
私はこれまでにこれが起こったことがなく、何度もこのように授業を行ったことがあるので、今回は何が違うのかよくわかりません。唯一の違いは、すべてのクラスファイルを作成しなかったことです。記入するテンプレートと試してみるテストファイルが渡されました。テストファイルでは機能しましたが、私のファイルでは機能していません。テストファイルとまったく同じ方法でクラスのメソッドを呼び出しています(例:Lineup.size())
これは私のクラスです:
クラスキュー: #新しい空のキューを作成するコンストラクター: def __init __(self): self .__ items = [] #キューの最後に新しいアイテムを追加し、何も返しません。 def queue(self、item): self .__ items.insert(0、item) 戻る #キューの最前部のアイテムを削除して返します。 #キューが空の場合は何も返しません。 def dequeue(self): len(self .__ items)== 0の場合: なしを返す そうしないと: self .__ items.pop()を返します #キューの最前部のアイテムを返し、キューを変更しません。 def peek(self): len(self .__ items)== 0の場合: なしを返す そうしないと: return self .__ items [(len(self .__ items)-1)] #キューが空の場合はTrueを返し、それ以外の場合はFalseを返します。 def is_empty(self): len(self .__ items)==0を返します #キュー内のアイテムの数を返します。 def size(self): len(self .__ items)を返します #キューからすべてのアイテムを削除し、サイズを0に設定します。 def clear(self): del self .__ items [0:len(self .__ items)] 戻る #キューの文字列表現を返します。 def __str __(self): "" .join(str(i)for i in self .__ items)を返します
これは私のプログラムです:
from queue import Queue
Lineup = Queue()
while True:
decision = str(input("Add, Serve, or Exit: ")).lower()
if decision == "add":
if Lineup.size() == 3:
print("There cannot be more than three people in line.")
continue
else:
person = str(input("Enter the name of the person to add: "))
Lineup.queue(person)
continue
elif decision == "serve":
if Lineup.is_empty() == True:
print("The lineup is already empty.")
continue
else:
print("%s has been served."%Lineup.peek())
Lineup.dequeue()
continue
elif (decision == "exit") or (decision == "quit"):
break
else:
print("%s is not a valid command.")
continue
そして、これは、決定変数として「add」を入力したときのエラーメッセージです。
8行目、builtins.AttributeError:'Queue'オブジェクトに属性'size'がありません
それで、ここで何が起こっているのですか?これは何が違うのですか?