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的变量
网友评论