在classmethods上使用property()
3 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
有一个类有两个类方法(使用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修饰函数一起使用?
添加回答
举报
0/150
提交
取消