欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python函数作用域和匿名函数

程序员文章站 2024-01-21 20:57:22
匿名函数 匿名函数 lambda 语法规则:lambda 参数 : 表达式 函数作用域 函数内部 函数内部的变量,作用域只在函数内部,函数内部不可以直接更改函数外部的变量 global(全局变量) 函数内部如果需要改变全局变量,就需要使用global修饰变量 nonlocal(局部变量) 在函数嵌套 ......
  1. 匿名函数的定义
  2. 全局变量和局部变量的概念
  3. global(全局变量)和 nonlocal(局部变量)
  4. 闭包、递归、回调 

匿名函数

匿名函数  lambda

语法规则:lambda   参数 : 表达式 

Python函数作用域和匿名函数

 Python函数作用域和匿名函数

 

 

 

函数作用域

函数内部

函数内部的变量,作用域只在函数内部,函数内部不可以直接更改函数外部的变量

 

global(全局变量)

函数内部如果需要改变全局变量,就需要使用global修饰变量

 Python函数作用域和匿名函数

Python函数作用域和匿名函数

 

nonlocal(局部变量)

在函数嵌套函数的情况下,同样也有函数作用域的问题,但是python3中提供了方便,只需要使用nonlocal就可以在里层函数内部修改外部函数变量

Python函数作用域和匿名函数

 Python函数作用域和匿名函数

 

 

 

闭包

函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包

闭包是概念,不是某种函数类型,和递归的概念类似,就是种特殊的函数调用

闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁

Python函数作用域和匿名函数

 Python函数作用域和匿名函数

 

 

 

递归和回调函数

递归

函数可以自身调用自身,但是使用时类似于条件循环一样,要有递归的终止条件

Python函数作用域和匿名函数

 Python函数作用域和匿名函数

使用递归时,可以让代码更加简洁

但递归会占用比较多的内存,当递归次数比较多时,性能就会降低,不建议多使用递归

 

回调

自身是一个函数,只是被传入到另一个函数当中,供其调用

回调函数不一定会被调用,是否调用由被传入函数的内部逻辑决定

Python函数作用域和匿名函数

 Python函数作用域和匿名函数