Python 39课习题,求详解
class Stack:def __init__(self, start=[]): #此处start=[]已经赋了初值,为什么结果报错,说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
a=Stack(start)
print(a.stack)
=== RESTART: C:/Users/admin/AppData/Local/Programs/Python/Python38/39.栈的操作.py ==
Traceback (most recent call last):
File "C:/Users/admin/AppData/Local/Programs/Python/Python38/39.栈的操作.py", line 32, in <module>
a=Stack(start)
NameError: name 'start' is not defined 本帖最后由 逃兵 于 2021-3-11 13:45 编辑
a=Stack(start)
start是个内部变量,外部没有定义
你改成a=Stack()就可以了
或者在外部定义一个变量start
start =
a=Stack(start) 逃兵 发表于 2021-3-11 13:43
a=Stack(start)
start是个内部变量,外部没有定义
明白了,start参数不传入可以,因为start变量是局部变量,如果传入那么一定在外边对其重新进行定义
页:
[1]