Python高级语法(14)type、object和class的关系

Python高级语法(1)抽象类

Python高级语法(2)多继承和MRO继承机制

Python高级语法(3)global和nolocal关键字使用详解

Python高级语法(4)魔法函数__init__/__del__/__new__

Python高级语法(5)魔法函数__str__/__repr__即str和repr的联系与区别的本质

Python高级语法(6)魔法函数__len__和__contains__即in和len()的本质

Python高级语法(7)魔法函数__getitem__/__setitem__/__delitem__即字典通过key取值赋值等本质

Python高级语法(8)魔法函数__enter__/__exit__即with上下文管理器的本质

Python高级语法(9)魔法函数__call__让对象像函数一样调用

Python高级语法(10)魔法函数__getattr__/__setattr__/__delattr__/__getattribute__对属性设置查询等的底层拦截处理

Python高级语法(11)多线程、多进程、协程简介与选择

Python高级语法(12)编码规范即pep8详解

Python高级语法(13)python中的一切皆对象

Python高级语法(14)type、object和class的关系

Python高级语法(15)装饰器

Python高级语法(16)迭代器

Python高级语法(17)map,filter,reduce,zip,lambda的应用

1 type类生成具体的类,具体的类则生成具体的实例,type->int->1,type->str->“abc”

a=100
b="hello world"
print(type(a))
print(type(int))
print(type(b))
print(type(str))

执行结果如下:

<class 'int'>
<class 'type'>
<class 'str'>
<class 'type'>

2 对于自定义类,对象由自定义的类生成的,而自定义的类同样也是由type生成的

class Student:
    pass

stu=Student()
print(type(stu))
print(type(Student))

执行结果如下:

<class '__main__.Student'>
<class 'type'>

3 object类是所有类的最顶层的基类

print(int.__bases__)
print(str.__bases__)

class People:
    pass

class Person(People):
    pass

print(Person.__bases__)
print(People.__bases__)

执行结果如下:

(<class 'object'>,)
(<class 'object'>,)
(<class '__main__.People'>,)
(<class 'object'>,)

4、object类是由type类实例化而来的,而type的基类又是object,而object的基类则为空

print(type(object))
print(type.__bases__)
print(object.__bases__)

执行结果:

<class 'type'>
(<class 'object'>,)
()

5 type,object 和class 的关系

  • object 是所有类的顶层基类
  • type 的基类也是object
  • object是type的实例
  • type 是 type的实例
        实例------->|
         |         |
         |         |<---实例-----|     
         |--------type        object<--继承---|
                   |----继承---->|            |
                   |                         |
                   |<----------实例----------list
                   |<----------实例----------str
                   |<----------实例----------dict
                   |<----------实例----------tuple             

猜你喜欢

转载自blog.csdn.net/redrose2100/article/details/121298223