作者littrabble (littrabble)
看板Python
标题[问题] class type 跟 class object
时间Fri Jan 10 18:38:10 2025
<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>,
搞不清楚
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.227.113.132 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1736505492.A.77D.html
1F:推 cancelpc: class把它想成DNA(样板) 01/10 19:25
2F:→ cancelpc: object依DNA生产的人 01/10 19:26
3F:→ cancelpc: object可以很多,但每个状态不一样 01/10 19:27
4F:推 seLain: www.python.org/download/releases/2.2/descrintro/ 01/11 00:58
5F:→ seLain: 需要厘清 isinstance 真实行为, metaclass, type system 01/11 00:59
6F:→ seLain: 看看上面这篇是否能帮到你 01/11 01:00
7F:推 lycantrope: metaclass 01/11 08:47
8F:→ leolarrel: 我也学到了,感谢教学 01/13 11:42