我如何处理python中的类?

时间:2018-04-25 20:49:43

标签: python

我不知道这里有什么问题,当我运行代码时没有任何反应!这是代码:

class Stack():
    "A container with a last-in-first-out (LIFO) queuing policy."

    def __init__(self,list=[]):
        self.list =list

    def push(self, item):
        "Push 'item' onto the stack"
        return self.list.append(item)

    def pop(self):
        "Pop the most recently pushed item from the stack"
        return self.list.pop()

s=Stack([6,7])

s.push(5)

我希望看到s被创建为列表[6,7],然后将5添加到其中。但没有任何反应。我该怎么办?

2 个答案:

答案 0 :(得分:2)

您的代码差不多。你只需打印一些东西就能看到结果!

我只想告诉你一个非常讨厌的错误。您正在使用变异类型作为默认参数!看看这个例子:

s=Stack()
s.push(1)
s2=Stack()
print(s2.list) # should be empty

此代码实际打印[1]!有关详细信息,请阅读此article

答案 1 :(得分:1)

import sys
import inspect
import heapq
import random

class Stack():

  "A container with a last-in-first-out (LIFO) queuing policy."

  def __init__(self,list=[]):
   self.list =list
  def push(self, item):
    print("Push 'item' onto the stack")
    return self.list.append(item)

  def pop(self):
    print("Pop the most recently pushed item from the stack")
    return self.list.pop()

  def printObj(self):
    print("Printing stackObj: ")
    for x in self.list:
      print(x)

s=Stack([6,7])

s.push(5)
s.printObj()

据我所知,它正在做你想做的事,你忘了你的prints:)