我的任務是使用佇列和一個類構建代碼,您可以在其中獲得三個選項:
- 生成一個新號碼
- 呼叫佇列的第一個數字并將其從主佇列中取出(有一個輔助佇列)
- 顯示已撥號碼
這是創建的類:
class Fila:
def __init__(self):
self._vet = []
def enqueue(self, item): # enfileirar
self._vet.append([-1])
def dequeue(self): # desenfileirar
self._vet.pop(0)
def front(self): # mostrar o 1o da fila, sem remover!
return(self._vet[1])
def is_empty(self): # retorna se a fila esta vazia
if len(self._vet) == 0:
return True
return False
def __len__(self):
return len(self._vet)
def __str__(self): # representacao da fila como string
return str(self._vet)
這是我想出的代碼:
from classeFila import *
if __name__ == "__main__":
f1 = Fila()
fAux = Fila()
contador = 0
while True:
opcao = int(input("Digite 1 para obter nova senha, 2 para chamar próxima senha ou 3 para mostrar senhas chamadas."))
if opcao == 1:
contador = 1
f1.enqueue(contador)
print("Sua senha é a de número", contador)
elif opcao == 2:
print("Senha número", f1[0], "está sendo chamada." )
fAux.enqueue(f1[0])
f1.dequeue()
elif opcao == 3:
print(fAux)
else:
print("Digite um número válido.")
問題是,在我運行代碼并輸入選項 2 的那一刻,我得到了錯誤:
Traceback (most recent call last):
File "c:\\Users\\thoma\\Desktop\\Projetos Python\\Fahad\\Filas\\senhas.py", line 16, in \<module\>
print("Senha número", f1\[0\], "está sendo chamada." )
TypeError: 'Fila' object is not subscriptable
雖然我知道這里的問題是嘗試使用索引,但我在解決方案方面做得很短,因為我可以在不使用索引的情況下指定正在呼叫的數字(“elif opcao == 2”中的f1 [0]) . 有什么指導嗎?
嘗試在上面提到的 f1[0] 中取出索引,當程式可以運行時,終端會顯示“Senha número [-1, -1] está sendo chamada”或“Number [-1, -1 ] 正在被呼叫”,如果你愿意的話。
uj5u.com熱心網友回復:
add__getitem__函式,這將允許您在代碼中使用,這將從內部陣列的索引處f1[0]獲取元素在此處閱讀更多f10_vet
class Fila:
def __init__(self):
self._vet = []
def enqueue(self, item): # enfileirar
self._vet.append([-1])
def dequeue(self): # desenfileirar
self._vet.pop(0)
def front(self): # mostrar o 1o da fila, sem remover!
return(self._vet[1])
def is_empty(self): # retorna se a fila esta vazia
if len(self._vet) == 0:
return True
return False
def __len__(self):
return len(self._vet)
def __str__(self): # representacao da fila como string
return str(self._vet)
def __getitem__(self, key): # this allows getting an element (overrided method)
return self._vet[key]
uj5u.com熱心網友回復:
f1是類的物件,Fila因此您不能將其撰寫或用作f1[0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/450461.html
