将函数转换为字段的装饰器是啥?

Posted

技术标签:

【中文标题】将函数转换为字段的装饰器是啥?【英文标题】:What is the decorator for turning a function to a field?将函数转换为字段的装饰器是什么? 【发布时间】:2014-04-14 12:02:26 【问题描述】:

在某个时候,我遇到了这样一段代码,用 python 编写的:

class Foo(object):
    @Mystery
    def bar():
       return 5+3
print Foo().bar

打印了 8。但是我不记得装饰器叫什么了。我是在想象事情,还是这存在?如果它确实存在,它叫什么?

【问题讨论】:

【参考方案1】:

您正在寻找@property

您可能想阅读how the @property decorator works。

简而言之,正如您所指出的,您可以使用它来为对象提供动态计算的属性。这在您可能有代码将其作为属性访问并且您不需要将其更改为函数调用的情况下非常有用。

但是默认情况下这是只读的。要再次允许设置值,您可以创建一个 setter 装饰器。这是一个example on how you might use it in the real world,它还向您展示了如何使用它。

【讨论】:

以上是关于将函数转换为字段的装饰器是啥?的主要内容,如果未能解决你的问题,请参考以下文章

python装饰器是啥意思

你能解释一下 Python 中的装饰器是啥吗? [关闭]

Python装饰器

Javascript装饰器的妙用

装饰器

Python函数装饰器