我试图运行此代码,并不断给我此erorr结果。push(3)AttributeError:“Stack”对象没有属性“push”

2024-06-17 08:10:07 发布

您现在位置:Python中文网/ 问答频道 /正文

class Stack:

    def __init__(self):
        self.items= []

def is_empty(self):
            return not self.items

def push(self, item):
            self.items.append(item)

def pop(self):
    return self.items.pop()

def peek(self):
    return self.items [-1]

def size(self):
     return len(self.items)

def __str__(self):
    return str(self.items)

if __name__=="__main__":
    result = Stack()
    print(result)
    result.push(3)

1条回答
网友
1楼 · 发布于 2024-06-17 08:10:07

Python在很大程度上依赖于缩进,因此正确使用缩进是至关重要的。现在,Stack只有一个方法__init__,因为所有其他函数都是全局定义的。这可以通过让其他预期方法与__init__一样缩进,改变它们的范围来解决

编辑:由于您仍然存在问题,下面是一个工作缩进:

class Stack:

    def __init__(self):
        self.items= []

    def is_empty(self):
        return not self.items

    def push(self, item):
        self.items.append(item)

    def pop(self):
        return self.items.pop()

    def peek(self):
        return self.items [-1]

    def size(self):
        return len(self.items)

    def __str__(self):
        return str(self.items)

if __name__=="__main__":
    result = Stack()
    print(result)
    result.push(3)

相关问题 更多 >