Day10

匿名函数

什么是匿名函数?

  • 匿名函数就是没有函数名的函数,匿名函数本质还是函数。
  • 语法 - lambda 参数: 返回值
# 普通函数
def fun(x, y):
    return x + y


# 匿名函数
lambda x, y: x + y
  • 匿名函数类型为 function , 调用和普通函数无异
fun = lambda x, y: x + y

print(type(fun))    # 
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))
  • nonlocalglobal作用相同,不同点在于nonlocal只能在嵌套函数中使用。
def fun():
    b = 2

    def fun1():
        nonlocal b
        b = 1

    fun1()
    print('b 的值%s' % b)

你可能感兴趣的:(Day10)