C-style static variables in Python?

Ethan Furman ethan at stoneleaf.us
Sat Apr 3 04:42:29 CEST 2010


Terry Reedy 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.

As a matter of fact, I have an object that is usually not called during 
it's modules use, so I put in __getattr__.  Sped the modules load time 
back up to pert near instantaneous.  :)

~Ethan~



More information about the Python-list mailing list