我對python還是新手,所以我正在練習實現堆棧,我不明白為什么push方法不起作用。我的代碼如下:class Stack: def __init__(self): self.top = None self.size = 0 def isEmpty(self): return self.top == None def push(self, value): node = Node(value, self.top) self.top = node self.size += 1 def pop(self): assert not self.isEmpty, "Error: The stack is empty" node = self.top self.top = self.top.next return node.valueclass Node: def __init__(self, value, link): self.value = value self.next = link def main(): stack = Stack() assert stack.isEmpty, "--> Error: isEmpty" stack.push(1) assert not stack.isEmpty, "--> Error: not isEmpty" print(stack.pop()) if __name__ == "__main__": main()這是出口:文件“c:”,第 33 行,主斷言 not stack.isEmpty,“--> 錯誤:not isEmpty”AssertionError:--> 錯誤:not isEmpty
1 回答

DIEA
TA貢獻1820條經驗 獲得超2個贊
stack.isEmpty
是一個函數,而stack.isEmpty()
是一個函數調用(返回一個布爾值)。
編輯:如果您想要一個屬性isEmpty
,請在其中聲明一個屬性__init__()
,并確保在對象發生更改時更新它。這樣你就可以引用stack.isEmpty
而不需要調用函數。這更多是個人喜好。
添加回答
舉報
0/150
提交
取消