[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