c语言的匿名函数的作用域,函数作用域和匿名函数

一、匿名函数

- 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()

三、闭包

外部调用函数内层的函数

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

四、递归和回调函数

暂时还是晕的

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值