在此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