[Python-Dev] I'd like list.pop to accept an optional second
Gordon McMillan
gmcm@hypernet.com
Thu, 22 Jul 1999 11:07:31 -0500
Jim Fulton writes:
> With pop, you can essentially test whether the list is
> empty and get a value if it isn't in one atomic operation:
>
> try:
> foo=queue.pop(0)
> except IndexError:
> ... empty queue case
> else:
> ... non-empty case, do something with foo
>
> Unfortunately, this incurs exception overhead. I'd rather do
> something like:
>
> foo=queue.pop(0,marker)
> if foo is marker:
> ... empty queue case
> else:
> ... non-empty case, do something with foo
I'm assuming you're asking for the equivalent of:
def pop(self, default=None):
much like dict.get?
Then how do I get the old behavior? (I've been known to do odd
things - like change behavior based on the number of args - in
extension modules, but this ain't an extension).
- Gordon