python
一、python面向对象编程的三大特性
Python是面向对象的语言,也支持面向对象编程的三大特性:封装、继承、多态。
封装:封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。隐藏对象的属性和实现细节,只对外提供必要的方法,减少代码冗余,提高代码复用。
继承:Python支持单继承与多重继承,即一个子类可以继承多个父类。继承其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法。
注:除了子类和父类的称谓,你可能看到过 派生类 和 基类 ,他们与子类和父类只是叫法不同而已。
多态:多态是指同一个方法调用,由于对象不同可能会产生不同的行为。
二:三器一闭
迭代器
生成器
闭包
装饰器
迭代器
什么是迭代器?
迭代器就是一个可以记住遍历的位置的对象
从第一个元素开始访问,直到所有的元素被访问完结束,迭代器只能往前不会后退
什么是可迭代对象?
一个可以被for循环遍历的对象就是可迭代对象
迭代器一定是可迭代对象,可迭代对象不一定是迭代器
生成器
什么是生成器
一边循环一边计算的机制就是生成器
含有yield关键字的函数也是生成器
一个含有__item__、__next__方法的对象也是生成器
生成器也是一种特殊的迭代器
创建生成器的两种方法
第一种: 把列表推导式的[]改为()
第二种: 函数中含有yield
next()和send()的区别
next唤醒函数,从断点处继续执行
send唤醒函数, 并向断点处传入一个值继续执行
生成器的特点
生成器存储的是生成数据的方式,而不是存储的数据,因此节约内存
闭包
我们想要理解装饰器就必须先学习闭包,因此我们把闭包放在前面
什么是闭包?
闭包是函数内嵌套了另一个函数,内部函数用了外部函数的局部变量,外部函数返回了内部函数的引用
闭包和普通函数的区别?
普通函数执行结束后会被python解释器自动释放局部变量
闭包可以让参数和变量不会被垃圾回收机制回收,始终保持在内存中
装饰器
什么是装饰器?
能够快速将函数的指向修改, 在不修改代码的前提下,给函数添加功能的方式
实现过程
将原函数的引用当做实参传递到闭包中
修改原函数的指向为闭包中的内部函数