[問題] class type 跟 class object

作者: littrabble (littrabble)   2025-01-10 18:38:10
<class type> 跟 <class object> 搞不懂
在 python 裡面所有東西都是物件, 包含 class
class Person:
pass
print( type(Person) ) # <class 'type'>
print( isinstance(Person, type) ) # True
==> Person 是 <class type> 的一個 instance
於是我就想知道 <class type> 是什麼型別, 又做了下面測試
發現 <class type> 的型別是 <class type>, 然後又是自己的 instance??
print( type(type(Person)) ) # <class 'type'>
print( isinstance(type(Person), type) ) # True
發現 <class object> 是 <class type> 的 instance
print( type(object) ) # <class type>
print( isinstance(object, type) ) # True
然後又發現 <class type> 也是 <class object> 的 instance?
print( isinstance(type, object) )
覺得非常困惑, 我以為所有物件的父類都是 <class object>,
搞不清楚
作者: cancelpc (阿吉)   2025-01-10 19:25:00
class把它想成DNA(樣板)object依DNA生產的人object可以很多,但每個狀態不一樣
作者: seLain (建築的永恆之道)   2025-01-11 00:58:00
www.python.org/download/releases/2.2/descrintro/需要釐清 isinstance 真實行為, metaclass, type system看看上面這篇是否能幫到你
作者: lycantrope (阿寬)   2025-01-11 08:47:00
metaclass
作者: leolarrel (真.粽子無雙)   2025-01-13 11:42:00
我也學到了,感謝教學

Links booklink

Contact Us: admin [ a t ] ucptt.com