Usando la propiedad () en classmethods

Tengo una clase con dos métodos de clase (usando la función classmethod ()) para obtener y establecer lo que es esencialmente una variable estática. Intenté usar la función property () con estos, pero da como resultado un error. Pude reproducir el error con lo siguiente en el intérprete:

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

Puedo demostrar los métodos de clase, pero no funcionan como propiedades:

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

¿Es posible utilizar la función de propiedad () con funciones decoradas de método de clase?

Respuestas a la pregunta(13)

Su respuesta a la pregunta