繁体   English   中英

在Python类中访问函数作为属性

[英]Accessing function as attribute in a Python class

我处于这样一种情况:将一个类'instancemethod作为属性访问它是非常有用的(尽管不是绝对必要的)。 (这是一个使用getattr为字典设置一些返回值的API,我不想弄乱整齐的小东西)

我记得读过一些关于@attribute装饰器的东西,但我找不到一个(在Python或Django中)

TL; DR:

我该怎么做:

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...>>

你可以使用@property装饰器。

class foo(object):
    bar = "bar"
    @property
    def baz(self):
        return "baz"

看看装饰形式的财产

@property
def baz(self):
  return "baz"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM