慕盖茨4494581
有一个类有两个类方法(使用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.varTraceback (most recent call last):
File "<stdin>", line 1, in ?TypeError: 'classmethod' object is not callable>>> f.var=5Traceback (most recent call last):
File "<stdin>", line 1, in ?TypeError: 'classmethod' object is not callable是否可以将property()函数与classmethod修饰函数一起使用?