python中有type()的Magic方法吗?

时间:2015-06-23 12:10:22

标签: python magic-methods

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

1 个答案:

答案 0 :(得分:6)

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

可以instance.__class__指定一个不同的类,但是你实际上会改变该实例的行为,而实例本身则不会在{{{{}}时更改类型1}}应用于实例。

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

执行此操作