Вы перезаписали атрибут top
: он не может быть одновременно переменной и методом.
Сначала вы определите его как метод:
def top(self):
...
Но позже вы перезаписываете это атрибутом узла top
:
self.top = new_node
top
теперь является Node
, и вы не можете вызвать узел.
Iрекомендуем изменить имя метода;как правило, методы должны быть глаголами, как вы сделали с push
и pop
.
def show_top(self):
if self.isempty():
print('empty stack')
return
return self.top.data
...
llist.pop()
llist.show_top()
llist.pop()
llist.push('oolala')
llist.printstack()