在什么情况下可以,什么时候不可能,在Python中分配实例的__class__
属性?
TypeError: __class__ assignment: only for heap types
等错误消息对我来说并不是真的这样做。
答案 0 :(得分:15)
您只能分配用户定义类的实例的__class__
属性(即使用class
关键字定义),新值也必须是用户定义的类。无论是新式还是旧式都无关紧要。 (但是你不能混用它们。你不能把旧式的类实例变成新式的类实例。)参见Python bug跟踪器中的this issue,它也会抱怨错误消息有点难以理解。
只是添加Rafe在上述评论中所说的内容:从不在制作中执行此操作。