在Python类中作为属性访问函数
在我的情况下,将类的instancemethod作为属性访问是非常有用的(尽管不是严格必要的)。(它适用于使用getattr为字典设置一些返回值的API,我不想把这件小事搞砸) 我记得读过一些关于在Python类中作为属性访问函数,python,django,metaprogramming,Python,Django,Metaprogramming,在我的情况下,将类的instancemethod作为属性访问是非常有用的(尽管不是严格必要的)。(它适用于使用getattr为字典设置一些返回值的API,我不想把这件小事搞砸) 我记得读过一些关于@属性的文章,但我找不到一个(Python或Django) TL;博士: 我如何做到这一点: class foo: bar = "bar" def baz(self): return "baz" 这样做: >>> f = foo() >>&
@属性的文章,但我找不到一个(Python或Django)
TL;博士:
我如何做到这一点:
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...>>
>f=foo()
>>>巴兹
您可以使用装饰器
class foo(object):
bar = "bar"
@property
def baz(self):
return "baz"
来看看装饰的形式
这将为我返回
@property
def baz(self):
return "baz"