Day-10 匿名函数

1.什么是匿名函数

匿名函数还是函数,只是声明的格式和普通的函数不一样。只适用于函数功能比较简单的函数

def 函数名(参数列表):
函数体

2.匿名函数的声明
a.语法
变量名 = lambda 形参列表:返回值
b.说明
变量名 - 相当于函数名
lambda - 声明匿名函数的关键字
形参列表 - 和普通函数的形参列表一样
返回值 - 就相当于普通函数中只有一条return语句的函数体

3.匿名函数的调用和普通函数一样
1.匿名函数的参数也可以设置默认值
2,。匿名函数不能通过添加:类型名来说明参数类型

func1 = lambda x,y: x+y
---------------------------------
def func1(x,y):
  return x+y

print(func1(10,20))

3.匿名函数也可以设置不定长参数

func2 = lambda *nums:sum(nums)
print(func2(1, 2, 3, 4, 5))
15

func3 = lambda x: print(x)
print(func3(100))
结果如下:
100
None

a = print(100)
print(a)
即a为None

变量的作用域:
就是变量能够使用的范围

2.全局变量和局部变量
a.全局变量 - 没有声明在函数或者类中的变量都是全局变量
b.声明在函数或者类中的变量就是局部变量
局部变量就是作用域是从声明开始到函数结束

全局变量1
a
print('',a)
for x in range(,a)
2.y 也是全局变量
for y in range(3)

3.局部变量 num1 局部的
def func(num1)
局部变量不能再函数外面使用

4.如果全局变量和局部变量同名,那么局部变量作用域中使用的是局部变量,外部变量作用域中使用的是外部变量

global - 在函数中声明一个全局变量

5.nonlocal - 只能在函数里面使用,想要在一个函数去修改副函数的变量的值(情况很少)

list1 = []
for i in range(5):
  list1.append(lambda x:x*i)

print(list1[0](3))
print(list1[3](3))
函数在声明的时候不会执行函数体
12
12

当我们调用函数的时候,系统自动在栈区间为这个函数开辟一块独立的内容空间,用来保存形参,当函数调用结束后这个函数对应的栈区间会自动销毁
python中声明函数其实就是声明一个类型是function的变量

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容