Использование свойства () для методов класса

У меня есть класс с двумя методами класса (используя функцию classmethod ()) для получения и установки того, что по сути является статической переменной. Я пытался использовать функцию property () с ними, но это приводит к ошибке. Я смог воспроизвести ошибку со следующим в переводчике:

class Foo(object):
    _var = 5
    @classmethod
    def getvar(cls):
        return cls._var
    @classmethod
    def setvar(cls, value):
        cls._var = value
    var = property(getvar, setvar)

Я могу продемонстрировать методы класса, но они нет работают как свойства:

>>> f = Foo()
>>> f.getvar()
5
>>> f.setvar(4)
>>> f.getvar()
4
>>> f.var
Traceback (most recent call last):
  File "", line 1, in ?
TypeError: 'classmethod' object is not callable
>>> f.var=5
Traceback (most recent call last):
  File "", line 1, in ?
TypeError: 'classmethod' object is not callable

Можно ли использовать функцию property () с декорированными функциями classmethod?

Ответы на вопрос(13)

Ваш ответ на вопрос