zoukankan      html  css  js  c++  java
  • Python函数作用域和匿名函数

    1. 匿名函数的定义
    2. 全局变量和局部变量的概念
    3. global(全局变量)和 nonlocal(局部变量)
    4. 闭包、递归、回调 

    匿名函数

    匿名函数  lambda

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

    lambda匿名函数的格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式

    lambda返回值是一个函数的地址,也就是函数对象

    函数作用域

    函数内部

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

    global(全局变量)

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

     

    nonlocal(局部变量)

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

     

    闭包

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

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

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

     

    递归和回调函数

    递归

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

     

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

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

    回调

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

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

     

  • 相关阅读:
    Web开发实用网站资源
    Web开发实用网站资源
    Ubuntu的LAMP与相关软件安装设置
    Ubuntu的LAMP与相关软件安装设置
    试除法求最小N个素数之二
    试除法求最小N个素数之二
    Python程序-输出1000以内素数
    Python程序-输出1000以内素数
    Ubuntu安装MPICH3集群计算环境
    Ubuntu安装MPICH3集群计算环境
  • 原文地址:https://www.cnblogs.com/jiyu-hlzy/p/11752258.html
Copyright © 2011-2022 走看看