Подтвердить что ты не робот

Доступ к функции как атрибут в классе Python

Я в ситуации, когда было бы чрезвычайно полезно (хотя и не обязательно) обращаться к классу 'instancemethod как атрибут. (это для API, который использует getattr для установки некоторых возвращаемых значений для словаря, и я не хочу испортить опрятную мелочь)

Я помню что-то читал о декораторе @attribute, но я не могу найти его (в 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...>>
4b9b3361

Ответ 1

Вы можете использовать декоратор @property.

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

Ответ 2

Взгляните на форму декоратора property.

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