匿名函数
什么是匿名函数?
- 匿名函数就是没有函数名的函数,匿名函数本质还是函数。
- 语法 - lambda 参数: 返回值
# 普通函数
def fun(x, y):
return x + y
# 匿名函数
lambda x, y: x + y
- 匿名函数类型为
function
, 调用和普通函数无异
fun = lambda x, y: x + y
print(type(fun)) # <class 'function'>
print(fun(1, 2)) # 3
变量作用域
全局变量和局部变量
- 在函数体外部定义变量叫全局变量,在函数体变量内定义的叫局部变量。
- 在函数中无法直接给全局变量赋值,需要在全局变量前加上
global
关键字。
a = 1
b = 2
def fun():
global a
a = 5
b = 10
print('函数内 a 的id为 %s' % id(a))
print('函数内 b 的id为 %s' % id(b))
fun()
print('函数外 a 的值为 %s' % a)
print('函数外 a 的id为 %s' % id(a))
print('函数外 a 的id为 %s' % b)
print('函数内 b 的id为 %s' % id(b))
-
nonlocal
与global
作用相同,不同点在于nonlocal
只能在嵌套函数中使用。
def fun():
b = 2
def fun1():
nonlocal b
b = 1
fun1()
print('b 的值%s' % b)