码迷,mamicode.com
首页 > 其他好文 > 详细

函数作用域和匿名函数

时间:2018-08-17 19:04:49      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:调用   法规   表达   def   关键字   回调函数   注意   filter   作用域   

一、匿名函数

- lambda # 关键字 和三目运算一样,做一些简单的函数定义,使代码更加简洁
    - 语法规则:
  lambda <参数>:表达式

  filter(lambda x: x>10, li)

  d = lambda a,b:a+b
  d(1,2)

    - 应用场景:

  1.简单函数:简单的函数可以不使用def定义一个函数,使用匿名函数即可
  2.函数调用:类似于filter、map等函数里面,可以使用匿名函数来处理
  3.提高开放效率:名函数的合理利用能够让那个代码更加简洁


二、函数作用域
    - 函数里面可以访问函数外面的变量
    - 定义在函数里面的变量,函数外面是不能访问的
    - 在函数里面可以访问最外面的(不可变)变量,但是不能对它修改,但可变类型(list set dict bytearray)就可以修改
    - 函数外面定义的变量和函数里面定义的变量重名时,他们不是一个变量。函数里面的变量不影响外面的变量

- global和nonlocal
    - global
  a = 1 # 全局变量

  def yu():
    global a # global 关键字 声明a是全局变量,声明后在函数内部就可以修改这个变量
    a = a+519
    print(a)
  yu()

    -nonlocal
  def yu():
  a = 1 # 局部变量 在嵌套函数的时候会使用
    def lo():
      nonlocal a # 声明这个a是局部变量
      a = a + 519
      print(a)
    lo()

  yu()

三、闭包

外部调用函数内层的函数


注意:函数的名字就相当于一个变量


四、递归和回调函数

暂时还是晕的

 

函数作用域和匿名函数

标签:调用   法规   表达   def   关键字   回调函数   注意   filter   作用域   

原文地址:https://www.cnblogs.com/nealxyz/p/9494788.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!