1. Py中三个中啊哟的概念type、object和class的关系。
type生成了int生成了1
type->class->obj
type用来生成类对象的
object是最顶层的基类
type也是一个类,同时type也是一个对象
结论:类是由type这个类生成的对象。obejct是所有类都继承的基类。继承都是object,实例是由type生成。
把握几个知识点就能深刻理解这个观点。
知识点1:type()并可以显示类型,所谓类型可以反映是由谁实例化生成的。实例化是动作,生成的结果就是对象。这是第一条线。
比如:
>>> a = 1 >>> type(1) <class 'int'> >>> type(int) <class 'type'>
int实例化了a,a是结果是一个对象,type实例化了int,int是结果是一个对象。
知识点2:不但实例化的过程,type最终形成环路,type实例化了自己,type的结果是一个对象,就是type自己。
知识点3:__bases__可以显示继承关系,就是所谓一层一层的继承关系。不管继承了多少层,最终都会继承object这个基类,包括type这个生成器的继承。这是第二条线。
知识点4:type和ojbect,是一个特殊关系,互为指向的关系。
总结:重点要理解继承和实例化,是两个不同概念,是两种概念两条线,其中又互为依赖。实例化是母体和子体的是生成关系。继承是属性和方法的遗传关系。
生成关系 vs 遗传关系。是一切接对象的核心。
举个例子:儿子是由母亲生的,这是一个关系。继承母亲的特性和行为这是一个关系。记住这个就理解了。
a = 1 b = "abc" print(type(1)) print(type(int)) print(type(b)) print(type(str)) class Student: pass class MyStudent(Student): pass stu = Student() print(type(stu)) print(type(Student)) print(int.__bases__) print(str.__bases__) print(Student.__bases__) print(MyStudent.__bases__) print(type.__bases__) print(object.__bases__) print(type(object))
2. Py中场景的内置类型(内置类型不是数据类型,是更广义的概念)。
对象的三个特性:
身份、用id查看,就是指的内存地址。
类型、用type查看
值、
类型有哪些:
None(全局只有一个)
数值:
int
float
complex
bool
迭代类型:
序列类型:
list
byte、bytearray、memoryview(二进制序列)
range
tuple
str
array
映射(dict):
集合:
set
frozenset(冻集合)
上下文管理类型:
with语句
其他:
模块类型
class和实例
函数类型
方法类型
代码类型
ojbect对象
type类型
elipsis类型:省略号类型
notimplemented类型。