[Python-Dev] PEP 310 and exceptions

Nick Coghlan ncoghlan at gmail.com
Mon Apr 25 01:37:59 CEST 2005


Toby Dickenson wrote:
> On Sunday 24 April 2005 07:42, Nick Coghlan wrote:
> 
>>Shane Hathaway wrote:
> 
> 
>>>While we're on the subject of block handler method names, do the method
>>>names need four underscores?  'enter' and 'exit' look better than
>>>'__enter__' and  '__exit__'.
> 
> 
> I quite like .acquire() and .release(). 
> 
> There are plenty of classes (and not just in the threading module) which 
> already have methods with those names that could controlled by a 'with'. 
> 
> Those names also make the most sense in the C++ 'resource acquisition' model.

Such existing pairings can be easily handled with a utility class like the one 
below. Besides, this part of the naming was considered for the original 
development of PEP 310 - entering and exiting the block is common to _all_ uses 
of the syntax, whereas other names are more specific to particular use cases.

class resource(object):
   def __init__(self, enter, exit):
     self.enter = enter
     self.exit = exit
   def __enter__(self):
     self.enter()
   def __exit__(self):
     self.exit()


with resource(my_resource.acquire, my_resource.release):
   # Do stuff!

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.skystorm.net


More information about the Python-Dev mailing list