面向对象之复习
面向过程编程思想:核心是《过程》,就是先干什么再干什么,过程流程化
面向对象编程思想:核心是《对象》,对象其实本质上是一个容器,用来盛放功能和属性的容器,是数据与方法的结合体。
类与对象:类是在对象的基础上的一种分门别类,主要是为了节省内存,本来是对象先产生,在产生类,但是注意,在程序中,是先产生了类,在根据类去一个一个的实例化出一个个对象。
对象:对象是由类产生的一个个对象,所以我们前面所学的l=[1,2,3],这个l也是列表的对象,列表也是一个类,依次类推,一切皆对象。
面向对象三大特性:封装,继承,多态
封装:本质上是一个整合的思想,将所有的东西统一规划到一起,方便管理,在封装里面的__开头的都是一个隐藏,为的是不让外界看到
但是,藏起来并不是目的,目的是为了让东西更安全一点,所以会提供一个接口,让外界来访问,将这个方法变成一个属性名,会给外界一个错觉,觉得这仅仅是一个属性。
继承:其实是一种强耦合的思想,将两个类联系在了一起,父类中含有子类的共有属性和方法,子类通过继承来访问父类中的属性与方法。
通过super().属性/方法来访问
组合:组合是继承的一种,但不是强耦合思想,是将一个类中的对象当作另一个类的参数传递进去,这个类也可以直接访问类中的所有东西,但是没有耦合起来
多态:抽象类
鸭子类型
绑定方法:给对象使用的,由对象调用,会自动的把对象本身当作第一个参数传给self
class method:本质上是一个装饰器,装饰里面的方法,被装饰的方法就是类的绑定方法。是将cls和self进行了统一
static method:非绑定方法,将类中的一个函数变成了一个普通函数
property:将方法变成了一个属性,必须由一个返回值
反射:
hasattr:判断对象/属性是否存在
getattr:对象/属性的值
setattr:修改对象/属性的值
delattr:删除对象/属性的值
类的内置方法
__Str__():格式化输出,自定义输出内容:当打印对象的时候
__del__():在文件快要结束的时候开始执行
__setter__
__str__: