|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- class Stack:
- def __init__(self, start=[]):
- self.stack = []
- for x in 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[0]
复制代码
为什么需要那个 for 循环啊
本帖最后由 jackz007 于 2021-3-8 22:55 编辑
这个循环的作用是在定义对象时,可以将指定的数据初始化进栈
例如,可以这样初始化和使用对象:
- #coding:gbk
- class Stack:
- def __init__(self, start=[]):
- self.stack = []
- for x in start:
- self.push(x)
- def __repr__(self): # 添加此方法,方便显示对象属性状态
- return repr(self . stack)
- def __str__(self): # 添加此方法,方便查询对象属性状态
- return str(self . stack)
- 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[0]
- s = Stack(('A' , 5 , 'ABC' , 6 , 'ABCDE' , 7))
- print(s) # 显示对象属性状态
- for _ in range(len(s . stack)) :
- print(s . pop())
复制代码
|
-
这是题目
|