在此python doc page它说的:改变“类型” Python对象
就像它的身份,对象的类型也是不变的。
我试试这个脚本,
#!python3
class Foo:
num = 1
pass
class Bar:
num = 2
pass
f1,f2= Foo(), Foo()
f2.__class__ = Bar
print(type(f1), type(f2), f1.num, f2.num)
结果表明:
<class '__main__.Foo'> <class '__main__.Bar'> 1 2
我觉得我改变了f2
的type
。
有什么不对,我错过了什么?
只是出于好奇@pepr – adamsmith 2016-08-11 08:46:36
这是一个公平的原因。解剖它会让你更好地理解内部。 :) – pepr 2016-08-12 12:54:22