![]() |
1
84
您可能认为可以调用由属性调用的基类函数:
尽管这是我认为最明显的尝试- 它不起作用,因为bar是一个属性,而不是可调用的。 但属性只是一个对象,使用getter方法查找相应的属性:
|
![]() |
2
44
|
![]() |
3
17
有另一种用途
基类A:
在B中,访问父类A的属性getter:正如其他人已经回答的,它是:
或者在Python 3中:
这将返回属性的getter返回的值,而不是getter本身,但它足以扩展getter。 在B中,访问父类A的属性设置器:到目前为止,我看到的最佳建议是:
我相信这个更好:
在这个例子中,两个选项都是等价的,但是使用super的优点是独立于
扩展A属性的B的完整代码:
一个警告:
除非属性没有setter,否则必须在
|
![]() |
4
4
尝试
尽管我不确定python是否支持调用基类属性。属性实际上是用指定的函数设置的可调用对象,然后在类中替换该名称。这很容易意味着没有可用的超级功能。 但是,您可以随时切换语法以使用property()函数:
|
![]() |
5
-1
(除非我在你的解释中遗漏了什么) |
![]() |
Pikachu620 · 在Visual C中运行时编译# 6 年前 |
![]() |
N6151H · 使用annotate()包括django模型对象属性 6 年前 |
![]() |
Rekshino · 在编译时获取类的属性名,而不进行对象实例化 6 年前 |
![]() |
Mahhdy · VBA类模块:从类内的对象获取属性 6 年前 |
|
user5441558 · c中get前缀背后的原因# 6 年前 |
|
user9409572 · 无法更改属性的值 6 年前 |