02Python核心编程_第1节 python高级编程_02.python高级2-生成器、闭包、装饰器

01-迭代器

迭代  :   迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

如果返回为True,则为迭代器对象

 注意: 生成器一定是迭代器,但是迭代器不一定是生成器

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

=================================================================================================================================

02-闭包

简单来说就是一个函数定义中引用了函数外定义的变量,并且该函数可以在其定义环境外被执行。这样的一个函数我们称之为闭包。实际上闭包可以看做一种更加广义的函数概念。因为其已经不再是传统意义上定义的函数。

 

 

 

 

 ----------------------------------------------------

 

 

 ====================================================================================================================================

03-闭包-强调

 =============================================================================================================================================================

04-闭包-应用

 ==========================================================================================================================================================

05-装饰器

 

 

 

 ========================================================================================================================================

06-2个装饰器 

 

 fn()为返回值"hello world-3"

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 =============================================================================================================================================================

07-装饰器执行的时间(1)

 

 

 ------------------------------------------------------------------------------------------------------------------------------------------------

=================================================================================================================================

08-2个装饰器-强调

 

 ========================================================================================================================================

09-装饰器对有参数、无参数函数进行装饰

 

 

 ---------------------------------------------------------------------------------------------------------------------------------------------

 -----------------------------------------------------------------------------------------------------------------------------------------------------------

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 ------------------------------------------------------------------------------------------

 

 ======================================================================================================================================

 10-装饰器对带有返回值的函数进行装饰

 

 

 

 

 =======================================================================================================================================================

11-通用装饰器

 

 =========================================================================================================================================================

12-带有参数的装饰器

 

 

 说明:如果装饰器带参数,实际上是先调用函数,得到函数的引用当做返回值;

然后再拿到函数的引用;

然后再对需要装饰的东西进行装饰

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

==========================================================================================================================================================

13-作用域

 

 

 

 

 

 ==============================================================================================================================================

 14-python动态添加属性以及方法

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

添加方法

 

 

 

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

=======================================================================================================================================================

15-types.MethodType的作用

 

 

---------------------------------------------------------------------------------------------------------------------------

 

 

 =============================================================================================================================================================

16-__slots__的作用

 

 =============================================================================================================================================================

17-生成器-1

 

 

 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

 

 程序遇到yield停止,把后面的值返回

 

 

 =============================================================================================================================================================

18-生成器-2-send

 

 =============================================================================================================================================================

19-生成器-3-强调

 

第一次就使用send,haha不知道传到哪块,导致程序崩溃

 

 

 

 =============================================================================================================================================================

20-生成器-4-完成多任务

 

原文地址:https://www.cnblogs.com/curedfisher/p/13050770.html