python 39课习题 望详解
class Stack:def __init__(self, start=[]):
self.stack = []
for x in start: #此遍历不太明白,为什么生成实例的self.stack属性,不会随着start列表的变化而改变呢?望详解。
self.push(x)
def isEmpty(self):
return not self.stack
def push(self, obj):
self.stack.append(obj)
def pop(self):
if not self.stack:
print('警告:栈为空!')
else:
return self.stack.pop()
def top(self):
if not self.stack:
print('警告:栈为空!')
else:
return self.stack[-1]
def bottom(self):
if not self.stack:
print('警告:栈为空!')
else:
return self.stack
本帖最后由 jackz007 于 2021-3-11 16:09 编辑
在定义对象的时候,可以使用已有的栈数据对对象进行初始化
加上这些代码实际运行一下,应该可以有些体会。
s = Stack(('A' , 123 , 'ABC' , , {'x' : 1 , 'Y' :2}))# 你的疑问答案在这里,遍历的目的,就是为了把序列化的参数内容装进对象的 stack 属性中。
print(s . stack)
s . push('XYZ')
print(s . pop())
print(s . pop())
print(s . stack)
页:
[1]