[问题] 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