获取在类“属性方法”上设置的属性

时间:2020-05-18 05:36:17

标签: python

我有这个简单的装饰器,它在装饰的方法上设置了属性mark='marked'

def mark(fn):
    @wraps(fn)
    def wrapper(*args, **kwargs):
        return fn(*args, **kwargs)
    setattr(wrapper, 'mark', 'marked')
    return wrapper

我在这样的类属性方法上使用它

class Car(object):

    @property
    @mark
    def move(self):
        return "move"

现在,由于Car.move是一种属性方法,如何访问我创建的marked属性?

>>> c = Car()
>>> getattr(c.move, 'mark')
AttributeError: 'str' object has no attribute 'mark'

由于c.move在属性描述符上调用了__get__方法,该方法返回一个字符串,因此该错误是有意义的。

有其他方法吗?

0 个答案:

没有答案
相关问题