In the last post, I blogged about how you should write Getter/Setter for member variables.
This is a follow-up for static variables, instead of instance variables.
I didn’t know the answer to that, until I searched around Stackoverflow. There are a couple of ways around using @property on classmethods.
The best answer for me is this:
class MyClass(object): _foo = 5 class __metaclass__(type): @property def foo(cls): return cls._foo @foo.setter def foo(cls, value): cls._foo = value
__metaclass__, some kind of black magic in Python.
With that, you can use the getter/setter on the static variable.
>>> MyClass.foo 5 >>> MyClass.foo = 3 >>> MyClass.foo 3