首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在类方法上使用property()

在类方法上使用property()
EN

Stack Overflow用户
提问于 2008-09-25 01:37:11
回答 10查看 110.5K关注 0票数 221

我有一个包含两个类方法的类(使用classmethod()函数),用于获取和设置本质上是静态变量的内容。我试图对这些函数使用property()函数,但它导致了一个错误。我能够在解释器中使用以下代码重现错误:

代码语言:javascript
复制
class Foo(object):
    _var = 5
    @classmethod
    def getvar(cls):
        return cls._var
    @classmethod
    def setvar(cls, value):
        cls._var = value
    var = property(getvar, setvar)

我可以演示类方法,但它们不能作为属性工作:

代码语言:javascript
复制
>>> 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修饰函数一起使用吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/128573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档