using "private" parameters as static storage?
steve at REMOVE-THIS-cybersource.com.au
Fri Nov 14 04:38:04 CET 2008
On Thu, 13 Nov 2008 14:05:17 -0500, Jean-Paul Calderone wrote:
> On Thu, 13 Nov 2008 10:58:49 -0800 (PST), rurpy at yahoo.com wrote:
>>On Nov 13, 11:32 am, "J. Cliff Dyer" <j... at sdf.lonestar.org> wrote:
>>> On Thu, 2008-11-13 at 09:38 -0800, Matimus wrote:
>>> > Preserving state is what classes are for.
>>> Preserving state is what *objects* are for.
>>Not exclusively, generators also preserve state.
>> count = 1
>> while 1:
>> yield "spam " * count
>> count += 1
>>spam = _spam.next()
> Surprise - generators are objects.
Yes, technically, but the value of count is not stored as an instance
attribute: you can't access spam.count. Instead, it is stored in the
internals of the generator.
Generators are a special case of closures:
Note that in some languages, closures are used to implement objects,
rather than the other way around.
More information about the Python-list