Python “type.\uu instancecheck”是否实现了“isinstance”的默认行为?
说下面的话: […]如果已定义,则调用以实现Python “type.\uu instancecheck”是否实现了“isinstance”的默认行为?,python,python-3.x,Python,Python 3.x,说下面的话: […]如果已定义,则调用以实现isinstance(实例、类) 措辞表明,是否定义了\uuuu instancecheck\uuuu会产生不同。也就是说,如果基本实现(type.\uu instancecheck.\uuu)提供默认行为,则不会说“覆盖实现isinstance” 更具体地说,我想知道下面的元类是否会导致类似的行为,就像我省略了\uu instancecheck\uu的定义一样: 类元(类型): 定义实例检查(自身,实例): 返回super()。_实例检查(实例) 类
isinstance(实例、类)
措辞表明,是否定义了\uuuu instancecheck\uuuu
会产生不同。也就是说,如果基本实现(type.\uu instancecheck.\uuu
)提供默认行为,则不会说“覆盖实现isinstance
”
更具体地说,我想知道下面的元类是否会导致类似的行为,就像我省略了\uu instancecheck\uu
的定义一样:
类元(类型):
定义实例检查(自身,实例):
返回super()。_实例检查(实例)
类测试(元类=元):
通过
isinstance(,测试)
我的直觉是肯定的,但文档的措辞让我担心,
isinstance
会根据是否定义了\uu instancecheck\uuu
而采取不同的路径。最后,我想知道我是否可以回到super()。\uuuu instancecheck\uuuu(instance)
在我自己的\uuu instancecheck\uuuuuu
实现中,以获得默认行为。isinstance
在定义了\uu instancecheck\uuuu
的情况下没有任何不同。此外,在super()。\uuuu instancecheck\uuuu(实例)
上“后退”是不必要的。根据“任何对象x
始终被视为
type(x)
,这是无法推翻的。”你有任何证据支持这一说法吗?文档中说“如果已定义,[…]”,这表明存在某种基于定义的\uu instancecheck\uu
的分支。我也不明白为什么super()。\uuuu instancecheck\uuuu(实例)
是不必要的。如果我在\uuu instancecheck\uuu
中实现我自己的逻辑,然后在某些情况下我想要默认行为,这正是我计划使用的。