python 中是否有 type() 的魔术方法?

Is there a Magic Method for type() in python?

我想知道 Python 中是否有支持 type() 内置函数的神奇方法,它允许您设置要返回的自定义值。

不,没有这样的方法。实例的类型不是您在查询时可以动态更改的东西,因为那将是特定于类型的行为,但您突然无法确定定义该行为的类型!

可以 将不同的 class 分配给 instance.__class__,但是你会实质性地改变那个实例的行为,而且它不是实例本身,然后在 type() 应用于实例时更改类型。

不使用type(),而是使用isinstance()issubclass()函数,并使用抽象基类型;然后 类型对象 负责将特定 class 或实例分别声明为给定类型的子 class 或实例。他们可以通过 __issubclass__ and __isinstance__ hooks.