Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
233 views
in Technique[技术] by (71.8m points)

Stack in Python: print a list

I have stack code:

class Stack:
def __init__(self):
    self.__data = []

def empty(self):
    return len(self.__data) == 0

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

def push(self, x):
    self.__data.append(x)

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

and adds numbers 1, 2:

stack = Stack()
stack.push(1)
stack.push(2)

and I don't know how to print __data list? so that it shows 1,2 in the list?

[1,2]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use __str__ method to print the values using print() or __repr__ for direct representation.

class Stack:
    def __init__(self):
        self.data = []

    def empty(self):
        return len(self.data) == 0

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

    def push(self, x):
        self.data.append(x)

    def pop(self):
        return self.data.pop()
    
    def __str__(self):
        return str(self.data)

    def __repr__(self):
        return str(self.data)

>>> stack = Stack()
>>> stack.push(1)
>>> stack.push(2)
>>> print(stack)  ## using __str__
# [1, 2]
>>> stack         ## using __repr__
# [1, 2]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...