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