python笔记(7):函数作用域和匿名函数,闭包递归回调

105 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一,匿名函数

  • lambda:用来简写非常简单的函数定义 在这里插入图片描述 ​ # 简化定义简单的函数的过程

二,函数作用域

  • 函数内部可以访问(取值)函数外部的变量

    ​ 1,函数外部:全局变量(光明的地方) 光明的不能访问黑暗的

    ​ 2,函数内部,局部变量(黑暗的地方) 黑暗的能访问光明的

    ​ 3,函数内部是可以访问全局变量的 在这里插入图片描述 ​ 3.5,先找局部再找全局!!在这里插入图片描述 ​ 4,全局不可以访问局部变量在这里插入图片描述 ​ 5,局部能访问全局变量,但是不能修改全局变量在这里插入图片描述 ​ 6,函数内部定义的局部变量的作用域只在这个函数内部有用在这里插入图片描述 ​ 7,global 在函数局部修改全局变量,全局的变量s会被改变!!在这里插入图片描述 ​ 8,内层函数能够访问外层函数定义的局部变量,但是不能对变量进行修改在这里插入图片描述 ​ 9,nonlocal 在嵌套函数里面修改局部变量,局部变量s会被修改!在这里插入图片描述

三,闭包,递归和回调

  • 闭包:用于装饰器在这里插入图片描述

  • 递归:函数自己调用自己

    错误的递归 :在这里插入图片描述 正确的递归 :在这里插入图片描述

  • 回调函数:一个函数对象被当做参数传入到另外一个函数中,那个这个被传入的函数对象被称作回调函数在这里插入图片描述