python-3.x - 使用 @property 创建的属性执行不同
问题描述
>>> class test():
name = 'tiger'
def __init__(self,value):
self.name = value
>>> class subtest(test): pass
>>> a = subtest('cat')
>>> super(subtest,subtest).name
'tiger'
当我使用 super(class, class) 访问类的普通属性时,它会获取该属性的值。但是,当我用@property 重写该属性时,它变成了一个属性对象,为什么以及发生了什么?
>>> class test():
name = 'tiger'
def __init__(self,value):
self._name = value
@property
def name(self):
return self._name
@name.setter
def name(self,value):
self._name = value
>>> class subtest(test): pass
>>> super(subtest,subtest).name
<property object at 0x03AB6300>
解决方案
推荐阅读
- firebase - VUE - 火力基地 | 如何从实时数据库中获取用户配置文件
- angular - 使用 VSCode Chrome 调试器调试 Electron 渲染过程
- kubernetes - 了解 Kubernetes 中的副本数
- jmeter - 如何在csv文件中的jmeter中将测试结果保存为通过和失败
- python - 如何在python中打印出奇数的索引
- powerbi - Power BI:带百分比的条形图
- python - WhatsApp Web 上的 Selenium 问题:无法找到元素
- python-3.x - 问题过拟合模型 VGG16 小数据集
- java - 我可以在 java 11+ 上运行 spring boot 1.4.x jar 吗?
- python - 如何使用 DJANGO 表格将记录编辑到模板中