Ich bin neu bei Python, also die Frage. Dies ist meine Implementierung einer QueueQueue-Implementierung in Python gibt Fehler bei der Größe
class Queue:
def __init__(self):
self.top = None
self.marker = None
self.size = 0
def push(self, item):
self.size += 1
curr = Node(item)
if self.top is None:
self.top = curr
self.marker = curr
else:
self.marker.next = curr
self.marker = curr
def pop(self):
if self.top is None:
raise Exception("Popping an empty queue")
curr = self.top
self.size -= 1
if self.top is self.marker:
self.top = None
self.marker = None
else:
self.top = self.top.next
return curr
def peek(self):
return self.top.value
def size(self):
return self.size
def isempty(self):
return self.size == 0
Die Node-Klasse ist wie folgt definiert,
class Node:
def __init__(self, value=None, next=None):
self.value = value;
self.next = next
Diese Implementierung funktioniert gut für die meisten Methoden, außer, wenn ich rufe Größe. Dieser Aufruf,
print(queue.size())
Ergebnisse in der folgenden Ausnahme,
print(queue.size())
TypeError: 'int' object is not callable
Kann nicht scheinen, zu verstehen, was das Problem hier ist.
Vielleicht ist das Problem, dass Sie den gleichen Namen, "Größe", für ein Integer-Attribut und für eine Methode verwenden. Versuchen Sie den Integer-Attributnamen (und alle Verweise darauf) auf etwas anderes zu ändern. –