【发布时间】:2020-01-30 13:51:37
【问题描述】:
这是代码:
class Empty(Exception):
pass
class ArrayStack:
def __init__(self):
self._data = []
def __len(self):
return len(self._data)
def is_empty(self):
return len(self._data)==0
def push(self, e):
self._data.append(e)
def pop(self):
if self.is_empty():
raise empty('Stack is Empty')
return self._data.pop()
def top(self):
if self.is_empty():
raise empty('Stack is Empty')
return self._data[-1]
s= ArrayStack()
s.push(10)
s.push(20)
print('Stack: ', s._data)
**print('Length: ', len(s)) #this line is throwing the problem**
print('Is-Empty: ', s.is_empty())
print('Popped: ', s.pop())
print('Stack: ', s._data)
错误信息
回溯(最近一次通话最后一次): 文件“main.py”,第 31 行,在 print('长度:', s.__len()) AttributeError: 'ArrayStack' 对象没有属性 '__len'
【问题讨论】:
-
__len() 应该是 __len__()。 docs.python.org/3/reference/datamodel.html#object.__len__
标签: python python-3.x