static variables python code example
Example 1: python static variable in function
"""1/You can add attributes to a function, and use it as a
static variable."""
def foo():
foo.counter += 1
print ("Counter is %d" % foo.counter)
foo.counter = 0
"""2/If you want the counter initialization code at the top
instead of the bottom, you can create a decorator:"""
def static_vars(**kwargs):
def decorate(func):
for k in kwargs:
setattr(func, k, kwargs[k])
return func
return decorate
@static_vars(counter=0)
def foo():
foo.counter += 1
print ("Counter is %d" % foo.counter)
"""3/Alternatively, if you don't want to setup the variable
outside the function, you can use hasattr() to avoid an
AttributeError exception:"""
def myfunc():
if not hasattr(myfunc, "counter"):
myfunc.counter = 0
myfunc.counter += 1
Example 2: creating a static property in python
class Example:
staticVariable = 5
print(Example.staticVariable)
instance = Example()
print(instance.staticVariable)
instance.staticVaraible = 6
print(instance.staticVariabel)
print(Example.staticVariable)
Example.staticVariable = 7
print(Example.staticVariable)