python 属性装饰器

标签 python decorator

Possible Duplicate:
Real world example about how to use property feature in python?

我对以下代码中看到的装饰器 @property 有疑问。有人可以完全解释为什么有人会使用 @property 装饰器吗?我知道 @property 相当于 isActive = property(isActive) 但是方法属性实际上对它的参数做了什么?如果我要从 InputCell 类调用 isActive 方法,实际会发生什么?提前致谢。

class InputCell(object):
    def __init__(self, ix, iy, inputData):
        self.ix = ix
        self.iy = iy
        self.InputData = inputData

    @property
    def isActive(self):
        return self.InputData[self.ix][self.iy]

最佳答案

它只是语法糖。它允许方法调用看起来像变量访问或赋值。

这可能有用的一种方法是,如果您想将以前简单变量的东西更改为实际计算或使用其他代码验证的东西。如果将其设为属性,则可以在不破坏任何现有代码的情况下执行此操作。另一种方法是用于对象属性的缓存、延迟初始化等。

关于python 属性装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11513705/

相关文章:

typescript - Typescript 中装饰器的别名

python - 多客户端流式 Websocket 端点 (Python)

python - Python中为什么写round(x[,n])而不写round(x,n)?

python - 更改时间戳中的时间

.net - Contract.Requires 和装饰者模式。如何避免过度检查条件?

python - 如何在 Python 中获取传递给装饰器的参数的值?

python - 如何在通用级别 l 上对 pandas.MultiIndex 进行切片?

python - Heartbleed 接收哪些类型的数据?

python - Django 组和权限

Javascript 装饰器监听器