在Python中分配实例的__class__属性

时间:2011-01-29 17:04:05

标签: python metaprogramming

在什么情况下可以,什么时候不可能,在Python中分配实例的__class__属性?

TypeError: __class__ assignment: only for heap types等错误消息对我来说并不是真的这样做。

1 个答案:

答案 0 :(得分:15)

您只能分配用户定义类的实例的__class__属性(即使用class关键字定义),新值也必须是用户定义的类。无论是新式还是旧式都无关紧要。 (但是你不能混用它们。你不能把旧式的类实例变成新式的类实例。)参见Python bug跟踪器中的this issue,它也会抱怨错误消息有点难以理解。

只是添加Rafe在上述评论中所说的内容:从不在制作中执行此操作