面向对象
一,面向对象和面向过程(重点理解)
面向过程:一切以事物的流程为中心,核心是过程二字,过程是指解决问题的步骤,即先干什么,后干什么,基于该思想编写程序就好比在编写一套流水线,是一种机械式的编程思维。优点:流程化,编写相对简单;缺点:可扩展性差
面向对象:具有相同属性和动作的结合体叫对象,面向对象思维,要自己建立对象,自己建立场景,你就是面向对象世界中的上帝。优点:可扩展性强 ;缺点:编程的复杂度高于面向过程
二,面向对象的三大特征:封装,继承,多态
封装:把很多数据封装到一个对象中,把固定功能的代码封装到一个代码块,函数,对象,打包成模块,这都属于封装的思想。
继承:子类可以自动拥有父类中除了私有属性外的其他所有内容
多态:同一个对象,多种形态
三,类的成员
变量(实例变量,类变量)
方法(实例方法,@staticmethod静态方法,@classmethod类方法)
属性@property:其实就是通过方法改造过来的一种变量的写法
私有变量:在python中使用__作为方法或变量的前缀,那么这个方法或变量就是私有的
私有方法
特殊成员:带双划线的就是特殊的成员
四,类与类之间的关系
依赖关系:在方法中给方法传递一个对象,此时类与类之间的关系是最轻的
关联关系(组合,聚合):把对象传在_init_()中
一对多的关联关系
五,isinstance,type,issubclass
type()是查看对象是什么类型的
isinstance
六,区别函数与方法
七,反射
hasatter(对象,字符串n):判断在对象中是否有n这个属性或功能
getatter(对象,字符串n):从对象中获得你这种功能的变量名
setatter(对象,字符串n,值):先从对象查找你这个功能,若有,用值的功能覆盖他,若没有,创建你这种功能,用的是值的功能
delatter(对象,字符串n):从对象中删除n这种功能