Static vars in Python?

Matthew Dixon Cowles matt at mondoinfo.com
Sun May 7 16:09:24 EDT 2000


In article <slrn8hbbcd.hq.jajs at Pascual.es>, jajs at NOSPAMretemail.es
(Juanjo Álvarez) wrote:

> Hi all!
> 
> It's posible to have in Python static vars (that is, vars in a function 
> that retain his value over calls to the same function)?

Hi Juanjo,
That's not possible directly. What's usually done is to use an object
that has a __call__ method and can therefore be treated like a
function.


class foo:
  def __init__(self):
    self.counter=1

  def __call__(self):
    print self.counter
    self.counter=self.counter+1


>>> thingThatBehavesLikeAFunction=foo()
>>> thingThatBehavesLikeAFunction()
1
>>> thingThatBehavesLikeAFunction()
2

Regards,
Matt



More information about the Python-list mailing list