一:生成器generator 如果生成器中的元素已经取完了,则抛出StopIteration异常 自然数序列 def nature(): n = 1 while True: ''' return n 1.返回n的值; 2.立即结束函数的执行 yield n 1.返回n的值; 2.立即暂停函数的执行 ''' # print(n) yield n n += 1 二:高阶函数 函数名本质上就是一个指向该函数的变量 函数作为参数传入 一个函数A可以接收另一个函数B作为参数,我们把这个函数A称为高阶函数 函数作为返回值 lazy_s()函数中定义了内部函数s(),而s()函数中又引用了外部函数lazy_s()的参数 args 当lazy_s()函数返回函数s(),相关的参数和变量都已经保存在返回的函数中 我们把这种程序结构称为 闭包Closure 三:匿名函数 lambda 表达式 匿名函数一般只 用于处理简单的情况 装饰器Decorator 在代码运行期间动态增加功能的方式,就称为装饰器 func: 将要被装饰的函数 # print(now) # print(now.__name__) # now.__name__ = '现在' # print(f.__name__)
|