python中 type object class之间的关系

本文深入探讨Python中type和object的概念,解释为什么一切类都是type的实例,以及为何所有类都继承自object。通过代码示例,清晰展示内置类如int、str以及自定义类Student的类型和继承关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于type的理解

大家都知道,type是用来返回对象类型的,数字100是int类型,"hi"是str类型。

type(100)
#<class 'int'>
type("hi")
#<class 'str'>

那么int和str是什么类型呢?惊奇的发现,int和str都是type类型。

type(int)
#<class 'type'>
type(str)
#<class 'type'>

int和str都是python中内置的类,那我们自己创建的类呢?stu是Student类型,这个没问题。但是,Student居然也是type类型的。
所以,我们可以得出结论:类是type类的实例对象。也就是说,不管是python中内置的int、str类,还是我们自己创建的Student类,它们都是type类的实例对象。

class Student():
    def __init__(self):
        pass
        
stu = Student()
print(type(stu)) #<class '__main__.Student'>
print(type(Student)) #<class 'type'>
关于object的理解

我们知道,所有类都继承于object。

print(int.__bases__)
#(<class 'object'>,)
print(Student.__bases__)
#(<class 'object'>,)

既然所有类都继承于object,那type类自然也继承于object了。而object的基类是空,也就是说,object没有继承其他的类了。

print(type.__bases__)
#(<class 'object'>,)
print(object.__bases__)
#()

最后,我们发现object也是type类型,也就是说,object也是type的实例对象。

print(type(object))
#<class 'type'>
总结

看到这里,相信很多盆友已经晕了。
其实。。。用一句话概括就是这样:一切类都是type的实例 ,一切都继承object类
用图描述就是这样:
图片来自波比老师
(图片来自波比老师)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值