简介
从具体的程序观点来看,类是python的程序组成单元,就像函数和模块一样;类是封装逻辑和数据的另一种形式。
python中的oop需要特别考虑:
1.多重实例,类基本就是产生对象的工厂;(多对象产生)
2.通过继承进行定制,类可以建立命名空间的层次结构;(命名空间继承)
3.运算符重载,python提供了一些可以由类使用的钩子,从而能够中断并实现任何的内置类型运算;(运算符重载)
本质
python类的本质:
1.class语句创建类对象并将其赋值给变量名;
2.class语句内的赋值语句会创建类的属性;
3.类属性提供对象的状态和行为;
实例对象的本质:
1.像函数一样调用类对象会创建新的实例对象;
2.每个实例对象继承类的属性并获得自己的命名空间;
3.在方法内对self属性做赋值运算都回产生每个实例自己的属性;
注:特别区分类属性和对象属性
属性
1.实例属性是由对方法内的self属性进行赋值运算生成的;
2.类属性是通过class语句内的语句(赋值语句)而生成的;
3.超类的链接是通过class语句首行的括号内列出类而生成的;
运算符重载
命名空间
无点号运算的变量名与作用域相对应;
点号的属性名使用的是对象的命名空间;
有些作用域会对对象的命名空间进行初始化;
新式类
钻石继承搜索方式变动;(深度优先-》广度优先)
明确解决冲突;
静态和类方法,slots、类内容属性