本帖最后由 逃兵 于 2021-3-10 10:36 编辑
start是列表
字典,列表,集合都是不可哈希数据
如果按照你的想法进行修改,更改外部变量start
生成的实例会随着start的变化而变化,有时候会引发出乎我们意料的bug
class Stack:
def __init__(self, start=[]):
self.stack=start
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]
>>> start = []
>>> a = Stack(start)
>>> a.stack
[]
>>> start.append(1)
>>> a.stack
[1]
>>>
使用迭代赋值的方法,生成的实例不会随着start的变化而变化
>>> start = []
>>> a = Stack(start)
>>> a.stack
[]
>>> start.append(1)
>>> a.stack
[]
|