◎知识点
函数的一些重要特性
lambda表达式
◎脚本练习
▽ 函数的一些重要特性
""" 在python中,一切皆为对象。所以,函数也是对象,从而函数可以被赋值给变量 """ def add(num1, num2): return num1 + num2 print(add) # <function add at 0x104eabb80> f = add print(f(1, 2)) # 3 """ 一个函数可以作为另一个函数的实参 """ def eval_square(x): return x * x result = map(eval_square, [1, 2, 3, 4]) print(list(result)) # [1, 4, 9, 16] """ 一个函数可以作为另一个函数的返回值 """ def do_sth(): return add print(do_sth()(1, 2)) # 3 """ 一个函数可以嵌套定义在另一个函数中 """ def outer(): def inner(): print("This is inner") return inner outer()() # This is inner
▽ lambda表达式
""" 定义函数的语法格式: def 函数名([形式参数1, 形式参数2, ..., 形式参数n]): 函数体 当函数体中只有一行return语句时,函数的定义可以用一个lambda表达式来代替,其语法格式为: lambda [形式参数1, 形式参数2, ..., 形式参数n]: 关于形式参数的表达式 与定义函数的语法格式相比,lambda表达式: (1) 没有函数名 (2) 没有关键字def (3) 没有小括号 (4) 关于形式参数的表达式相当于函数的返回值 lambda表达式就是匿名简化版的函数 """ def add(num1, num2): return num1 + num2 print(add(1, 2)) # 3 print((lambda num1, num2: num1 + num2)(1, 2)) # 3 """ 在python中,一切皆为对象。所以,lambda表达式也是对象,从而lambda表达式可以被赋值给变量 """ le = lambda num1, num2: num1 + num2 print(le(1, 2)) # 3 """ 因为lambda表达式是匿名简化版的函数,所以,lambda表达式可以作为函数的实参 """ result = map(lambda x: x * x, [1, 2, 3, 4]) print(list(result)) # [1, 4, 9, 16] """ 因为lambda表达式是匿名简化版的函数,所以,lambda表达式可以作为函数的返回值 """ def do_sth(): return lambda num1, num2: num1 + num2 print(do_sth()(1, 2)) # 3
◎脚本地址: