Python3---函数(高级、作用域)

4.函数-高级

(1)偏函数:原函数中部分拥有固定值的参数另外单独定义为一个函数

Python3---函数(高级、作用域)

(2)高阶函数:参数是函数

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

(3)返回函数:返回值为函数

Python3---函数(高级、作用域)

(4)匿名函数:也称lambda函数

Python3---函数(高级、作用域)

(5)闭包

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

(6)装饰器:格式必须要与被装饰的函数一致!

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

注意:上即为外层,下即为内层

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

(7)生成器

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

注意:yield语句可以阻断当前函数的执行,但当使用next()或__next()__时,函数会继续接着执行,直到执行到下一个yield语句,又会被暂停。

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

(8)递归函数:采用分治法(大任务->小任务)实现循环功能

Python3---函数(高级、作用域)

 

5.函数的作用域

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

Python3---函数(高级、作用域)

访问原则:从内到外或就近原则,具体是指从当前所处的命名空间开始寻找,再往外更大的命名空间查找

注意:程序执行到某一行时,需要查询某变量的值时,只能往前查找,而不能往下面还没执行的区域查找!!!(如:下图中调用test()时,找不到b的值!)

Python3---函数(高级、作用域)