Python поддерживает @property декоратор для экземпляров, как так:Per-класса @property декоратор в Python
class MyClass(object):
def __init__(self):
self._friend_stack = [1]
@property
def current_friend(self):
return self._friend_stack[0]
myobj = MyClass()
myobj.current_friend # 1
Можно ли что-то подобное для классов, так что поведение что-то вроде этого (по с установки и получения методов, например):
class MyClass(object):
_friend_stack = [1]
@property
def current_friend(cls):
return cls._friend_stack[0]
MyClass.current_friend # 1
Думает, что вы хотите '@ classmethod' –
Возможного дубликат [статического переменного класса в Python] (http://stackoverflow.com/questions/68645/static-class-variables-in-python) –
'@ classmethod' позволит мне делать' MyClass.current_friend() ', но это не позволило мне сделать MyClass.current_friend = 2'. Мне бы хотелось, чтобы последнее поведение. Я также хотел бы иметь возможность запускать код при доступе к переменным. – Pablo