Re: [Python-Dev] Proposed changes to PEP 343
Jason Orendorff wrote:
On 10/12/05, Nick Coghlan <ncoghlan@gmail.com> wrote:
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.
Not the same. A precise term exists for "g": it's a generator function. PEP 255 explicitly talks about this:
"...Note that when the intent is clear from context, the unqualified name "generator" may be used to refer either to a generator-function or a generator- iterator."
What would the corresponding paragraph be for PEP 343?
"...Note that when the intent is clear from context, the unqualified name 'context manager' may be used to refer either to a 'context manager function' or to an actual 'context manager object'. This distinction is primarily relevant for generator-based context managers, and is similar to that between a normal generator-function and a generator-iterator." Basically, a context manager object is an object with __enter__ and __exit__ methods, while the __with__ method itself is a context manager function. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.blogspot.com
participants (1)
-
Nick Coghlan