Steven D'Aprano wrote:
On Sat, 09 Jan 2010 01:07:39 -0800, kzagradskiy wrote:
class Stack:
def __init__(self):
self.__heap = []
A "heap" has a technical meaning in programming. To describe the
internals of a stack as "heap" will be disconcerting and confusing to
anyone who knows about stacks and heaps.
def push (self, word):
self.__heap.append (word)
def pop (self):
if len(self.__heap) == 0:
raise InnerInterpreterError, "stack underflow"
"InnerInterpreterError" is the most inappropriate exception name I've
ever seen. It has nothing to do with the interpreter, it's a stack error.
It has everything to do with the (Forth) interpreter. Exceptions can
readily be named according to their application -- it's not always about
Python. Anyway, Forth has an inner-interpreter and an
outer-interpreter, and the name will make sense to a Forth programmer.
result = self.__heap[-1]
del self.__heap[-1]
That is better written as result = self.__heap.pop().
or even better, without the extra local var:
def pop (self):
if len(self.__heap) == 0:
raise InnerInterpreterError, "stack underflow"
return self.__heap.pop(1)
P.S. - I'm puzzled why the OP even put this message here. There's no
question posted with it.
DaveA
--
http://mail.python.org/mailman/listinfo/python-list