python中type,object,class 三者关系

type,object,class 三者关系

在python中,所有类的创建关系遵循:

type -> int -> 1
type -> class -> obj

例如:

a = 1
b = "abc"
print(type(1))          # <class 'int'> 返回对象的类型
print(type(int))        # <class 'type'> 表明这个类是由type生成的
print(type(b))          # <class 'str'>
print(type(str))        # <class 'type'>

在python中,type()方法有两种使用

  • 返回这个实例变量的类型,如1是整数类型int,"abc"是字符串类型str
  • 返回这个类是由什么类生成的,如intstr都由type类生成

由此可见,类都是由type这个类所创建的一个个对象

type这个类则是由它自身生成的

再来看object类:

class Student:
    pass


stu = Student()
print(type(stu))            # <class '__main__.Student'>
print(type(Student))        # <class 'type'>
print(int.__bases__)        # (<class 'object'>,)
print(str.__bases__)        # (<class 'object'>,)
print(Student.__bases__)    # (<class 'object'>,)
print(type.__bases__)       # (<class 'object'>,)
print(object.__bases__)     # ()
print(type(object))         # (<class 'object'>,)

__bases__方法可以返回一个类的父类

我们可以看到,object类是所有类的父类(当然也包括type类)

即使我们不将继承关系直接写在代码块中,python也会默认所有的类继承object

三者关系图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值