python入门到秃顶(7):函数作用域和匿名函数,闭包递归回调
一,匿名函数
- lambda:用来简写非常简单的函数定义
# 简化定义简单的函数的过程
二,函数作用域
-
函数内部可以访问(取值)函数外部的变量
1,函数外部:全局变量(光明的地方) 光明的不能访问黑暗的
2,函数内部,局部变量(黑暗的地方) 黑暗的能访问光明的
3,函数内部是可以访问全局变量的
3.5,先找局部再找全局!!
4,全局不可以访问局部变量
5,局部能访问全局变量,但是不能修改全局变量
6,函数内部定义的局部变量的作用域只在这个函数内部有用
7,global 在函数局部修改全局变量,全局的变量s会被改变!!
8,内层函数能够访问外层函数定义的局部变量,但是不能对变量进行修改
9,nonlocal 在嵌套函数里面修改局部变量,局部变量s会被修改!
三,闭包,递归和回调
-
闭包:用于装饰器
-
递归:函数自己调用自己
错误的递归 :
正确的递归 : -
回调函数:一个函数对象被当做参数传入到另外一个函数中,那个这个被传入的函数对象被称作回调函数