在Python类中将函数作为属性访问
我现在遇到一个情况,能把一个类的方法当作属性来用会非常有用(虽然不是绝对必要)。这是因为我在做一个API,它用到getattr来设置字典的返回值,我不想把这个小功能搞得乱七八糟。
我记得之前看到过一个叫@attribute
的装饰器,但现在找不到了(无论是在Python还是Django里)。
简单来说:
我想把这个:
class foo:
bar = "bar"
def baz(self):
return "baz"
变成这个:
>>> f = foo()
>>> f.baz
"baz"
(为了更清楚地说明)而不是这个:
>>> f = foo()
>>> f.baz
<bound method foo.baz of <__builtin__.foo instance at 0x...>>