Bri*_*cks 39 python django metaprogramming
我处于这样一种情况:将一个类'instancemethod作为属性访问它是非常有用的(尽管不是绝对必要的).(这是一个使用getattr为字典设置一些返回值的API,我不想弄乱整齐的小东西)
我记得读过一些关于@attribute
装饰器的东西,但我找不到一个(用Python或Django)
TL; DR:
我该怎么做:
class foo:
bar = "bar"
def baz(self):
return "baz"
Run Code Online (Sandbox Code Playgroud)
做这个:
>>> f = foo()
>>> f.baz
"baz"
Run Code Online (Sandbox Code Playgroud)
(为清晰起见而编辑)而不是:
>>> f = foo()
>>> f.baz
<bound method foo.baz of <__builtin__.foo instance at 0x...>>
Run Code Online (Sandbox Code Playgroud)
Pra*_*ota 64
你可以使用@property
装饰器.
class foo(object):
bar = "bar"
@property
def baz(self):
return "baz"
Run Code Online (Sandbox Code Playgroud)
Ste*_*eMc 12
看看装饰形式的财产.
@property
def baz(self):
return "baz"
Run Code Online (Sandbox Code Playgroud)