我有一个包含两个类方法的类(使用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 "<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
可以将property()
函数与@classmethod
修饰函数一起使用吗?
https://stackoverflow.com/questions/128573
复制相似问题