python - 为什么 super 只有类属性的子集?

标签 python python-3.x super

假设我在类外使用super。我能做到。

super(int, 1).__str__ # <method-wrapper '__str__' of int object at 0x000000005E29C6B0>

但是我做不到

super(int, 1).__float__ # raises an AttributeError

更一般地说,我可以检查 1 具有的所有方法,但不能检查 super(int, 1) 对象。

set(dir(1)) - set(dir(super(int,1)))

这将输出一组四十多个特定于 1 的属性,即 __round____float__real 到仅举几个例子。

是什么导致了 super 的这种行为和/或这些方法有何不同。

最佳答案

当您执行 super(int, 1).__float__ 时,您要求覆盖 int.__float__ 方法。没有一个。

关于python - 为什么 super 只有类属性的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49080746/

相关文章:

python - 即使在 pygame 中释放 key 后,我的 Sprite 仍然继续移动

ruby - 如何在 Ruby 中重新定义 Fixnum 的 + (plus) 方法并保留原始 + 功能?

java - JAVA 中的 super() 函数

Python 字典用于配对并使用字典检查反对称性

python-3.x - 如何识别两个数据帧之间的精确行匹配并打印其上方的行

python - IndexError : too many indices for array when trying to plot a spectrogram of a . wav 文件

python - 在父类中调用 `super()`

python - numpy.genfromtxt 生成看起来像元组的数组,而不是二维数组——为什么?

python - 在 Python 中从 FTP 文件夹(文件名有空格)获取最新文件

python - 打印指定范围内的列表Python