C-style static variables in Python?

Terry Reedy tjreedy at udel.edu
Fri Apr 2 21:46:39 EDT 2010


On 4/2/2010 6:59 PM, kj wrote:
> In<Xns9D4EC021DC8EAduncanbooth at 127.0.0.1>  Duncan Booth<duncan.booth at invalid.invalid>  writes:
>
>> class Spam(object):
>>    mongo = None
>>    def __call__(self, x, y, z):
>>        if self.mongo is None:
>>            self.mongo = heavy_lifting_at_runtime()
>>        return frobnicate(x, y, z, self.mongo)

Unless one wants the intialization of mongo delayed in case spam is 
never called, it can go in __init__ instead.


>> spam = Spam()
>
>> ham = spam(1, 2, 3)
>
> I really like this.  Thanks.
>
>> That's natural and readable.
>
>> From reading this thread, and the "(a==b) ? 'Yes' : 'No'" one, the
> inescapable conclusion is that "readability" (like beauty) is very
> much in the eye of the beholder, or, in this case, in the eye of
> Guido.
>
> ~K





More information about the Python-list mailing list