
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