我想知道Python中是否有支持type()内置函数的魔术方法,它允许您设置要返回的自定义值。
答案 0 :(得分:6)
不,没有这样的方法。实例的类型不是您在查询时可以动态更改的类型,因为这将是特定于类型的行为,但您突然无法确定定义该行为的类型!
你可以为instance.__class__
指定一个不同的类,但是你实际上会改变该实例的行为,而实例本身则不会在{{{{}}时更改类型1}}应用于实例。
而不是使用type()
,而是使用type()
和isinstance()
函数,并使用抽象基类型;然后,类型对象分别负责将特定类或实例声明为给定类型的子类或实例。他们可以通过__issubclass__
and __isinstance__
hooks。