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.
我想知道 Python 中是否有支持 type() 内置函数的神奇方法,它允许您设置要返回的自定义值。
不,没有这样的方法。实例的类型不是您在查询时可以动态更改的东西,因为那将是特定于类型的行为,但您突然无法确定定义该行为的类型!
你 可以 将不同的 class 分配给 instance.__class__
,但是你会实质性地改变那个实例的行为,而且它不是实例本身,然后在 type()
应用于实例时更改类型。
不使用type()
,而是使用isinstance()
和issubclass()
函数,并使用抽象基类型;然后 类型对象 负责将特定 class 或实例分别声明为给定类型的子 class 或实例。他们可以通过 __issubclass__
and __isinstance__
hooks.