[Python-Dev] I'd like list.pop to accept an optional second

Gordon McMillan gmcm@hypernet.com
1999年7月22日 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

AltStyle によって変換されたページ (->オリジナル) /