[Python-Dev] Proposed changes to PEP 343
Nick Coghlan
ncoghlan at gmail.com
Wed Oct 12 11:23:58 CEST 2005
Greg Ewing wrote:
> Jason Orendorff wrote:
>
>
>> A contextmanager is a function that returns a new context manager.
>>
>>Okay, that last bit is weird.
>
>
> If the name of the decorator is to be 'contextmanager', it
> really needs to say something like
>
> The contextmanager decorator turns a generator into a
> function that returns a context manager.
>
> So maybe the decorator should be called 'contextmanagergenerator'.
> Or perhaps not, since that's getting rather too much of an
> eyeful to parse...
Strictly speaking this fits in with the existing confusion of "generator
factory" and "generator":
Py> def g():
... yield None
...
Py> type(g)
<type 'function'>
Py> type(g())
<type 'generator'>
Most people would call "g" a generator, even though its really just a factory
function that returns generator objects.
So technically, the "contextmanager" decorator turns a generator factory
function into a context manager factory function.
But its easier to simply say that the decorator turns a generator into a
context manager, even if that's technically incorrect.
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
http://boredomandlaziness.blogspot.com
More information about the Python-Dev
mailing list