python

LczPtr 2020-04-14

一、python面向对象编程的三大特性

Python是面向对象的语言,也支持面向对象编程的三大特性:封装、继承、多态。

封装:封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。隐藏对象的属性和实现细节,只对外提供必要的方法,减少代码冗余,提高代码复用。

继承:Python支持单继承与多重继承,即一个子类可以继承多个父类。继承其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法。

注:除了子类和父类的称谓,你可能看到过 派生类 和 基类 ,他们与子类和父类只是叫法不同而已。

多态:多态是指同一个方法调用,由于对象不同可能会产生不同的行为。

二:三器一闭

               迭代器

               生成器

               闭包

               装饰器

               迭代器

什么是迭代器?

迭代器就是一个可以记住遍历的位置的对象

从第一个元素开始访问,直到所有的元素被访问完结束,迭代器只能往前不会后退

什么是可迭代对象?

一个可以被for循环遍历的对象就是可迭代对象

迭代器一定是可迭代对象,可迭代对象不一定是迭代器

生成器

什么是生成器

一边循环一边计算的机制就是生成器

含有yield关键字的函数也是生成器

一个含有__item__、__next__方法的对象也是生成器

生成器也是一种特殊的迭代器

创建生成器的两种方法

第一种: 把列表推导式的[]改为()

第二种: 函数中含有yield

next()和send()的区别

next唤醒函数,从断点处继续执行

send唤醒函数, 并向断点处传入一个值继续执行

生成器的特点

生成器存储的是生成数据的方式,而不是存储的数据,因此节约内存

闭包

我们想要理解装饰器就必须先学习闭包,因此我们把闭包放在前面

什么是闭包?

闭包是函数内嵌套了另一个函数,内部函数用了外部函数的局部变量,外部函数返回了内部函数的引用

闭包和普通函数的区别?

普通函数执行结束后会被python解释器自动释放局部变量

闭包可以让参数和变量不会被垃圾回收机制回收,始终保持在内存中

装饰器

什么是装饰器?

能够快速将函数的指向修改, 在不修改代码的前提下,给函数添加功能的方式

实现过程

将原函数的引用当做实参传递到闭包中

修改原函数的指向为闭包中的内部函数

相关推荐