Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python类中作为属性访问函数_Python_Django_Metaprogramming - Fatal编程技术网

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

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

在我的情况下,将类的instancemethod作为属性访问是非常有用的(尽管不是严格必要的)。(它适用于使用getattr为字典设置一些返回值的API,我不想把这件小事搞砸)

我记得读过一些关于
@属性的文章,但我找不到一个(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"