python - python属性getter有什么用吗?
问题描述
我想知道对于类属性显式使用 getter 装饰器是否有任何用途:
class A:
@property
def p(self):
return self._p
@p.setter
def p(self, val):
assert p < 1000
self._p = val
@p.getter
def p(self):
return self._p
为什么我会在这里明确使用吸气剂?它不会使 p(self) 中的代码无法访问吗?基本上,有任何实际的理由使用它吗?
解决方案
当您从父类继承属性并想要覆盖 getter 时,它很有用:
class Parent:
@property
def prop(self):
return 'Parent'
@prop.setter
def prop(self, value):
print('prop is now', value)
class Child(Parent):
@Parent.prop.getter
def prop(self):
return 'Child'
Foo.prop
这将创建一个具有不同 getter 函数但相同的 setter(和删除器)的副本。
推荐阅读
- android - 通过 Android 上的 uri 方案自动将密钥导入谷歌身份验证器
- django - Django: best way to redirect empty results pages to root page
- python - 如何避免 doxctpl 的 MS Word 列表中出现新行?
- uber-cadence - Cadence Java 客户端 - 无法解析 Worker.Factory
- flutter - 容器填充 EdgeInsets.fromLTRB 更改背景颜色
- python - 如何在没有任何模块的情况下在 python 中生成随机整数
- python - 在 tf-idf 中哪种方式是正确的?拟合所有然后变换训练集和测试集或拟合训练集然后变换测试集
- php - Carbon 检查当前时间是否介于两个时间之间
- python - 试图让我的 views.py 和 urls.py 正常工作
- excel - Office 365/Sharepoint 中的 Excel 用于 TODAY/NOW 函数的时区是什么?