oldboyday 4

mac2022-06-30  103

一、 函数对象 函数对象:函数是第一类对象,即函数可以当作数据传递   1 可以被引用   2 可以当作参数传递   3 返回值可以是函数   3 可以当作容器类型的元素二、 函数的嵌套   1 函数的嵌套调用   2 函数的嵌套定义

def f1(): def f2(): print('from f2') def f3(): print('from f3') f3() f2()

 三、 名称空间与作用域  三种名称空间:    内置名称空间: 随着python解释器的启动而产生    全局名称空间: 文件的执行会产生全局名称空间,指的是文件级别定义的名字都会放入改空间     局部名称空间: 调用函数时会产生局部名称空间,只在函数调用时临时绑定,调用结束解绑定  作用域:   1. 全局作用域:  内置名称空间,全局名层空间   2. 局部作用    局部名称空间    全局作用域: 全局有效,在任何位置都能被访问到,除非del删掉,否则会一直存活到文件执行完毕    局部作用域的名字: 局部有效,只能在局部范围调用,只在函数调用时才有效,调用结束就失效    名字的查找顺序: 局部名称空间---》全局名层空间---》内置名称空间    查看全局作用域内的名字:gloabls()    查看局局作用域内的名字:locals()四、 闭包    1.定义在内部函数    2. 包含对外部作用域而非全局作用域的引用,该内部函数就成为闭包函数    特点:闭包应用:惰性计算五、 装饰器六、 迭代器

    迭代的概念:重复+上一次迭代的结果为下一次迭代的初始值重复的过程称为迭代,每次重复即一次迭代,并且每次迭代的结果是下一次迭代的初始

    为什么要有迭代器?对于没有索引的数据类型,必须提供一种不依赖索引的迭代方式    可迭代的对象:内置__iter__方法的,都是可迭代的对象

七、 生成器    生成器函数:只要函数体包含yield关键字,该函数就是生成器函数    生成器就是迭代器    yield的功能:   1.相当于为函数封装好__iter__和__next__   2.return只能返回一次值,函数就终止了,而yield能返回多次值,每次返回都会将函数暂停,下一次next会从上一次暂停的位置继续执行

八、 内置函数

转载于:https://www.cnblogs.com/scxbk/p/6898896.html

最新回复(0)