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 | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.skystorm.net _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com