8-[函数]-嵌套函数,匿名函数,高阶函数,递归函数
Posted 不要被骄傲遮蔽了双眼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8-[函数]-嵌套函数,匿名函数,高阶函数,递归函数相关的知识,希望对你有一定的参考价值。
1.嵌套函数
(1)多层函数套用
name = "Alex" def change_name(): name = "Alex2" def change_name2(): name = "Alex3" print("第3层打印", name) change_name2() # 调用内层函数 print("第2层打印", name) change_name() print("最外层打印", name)
第3层打印 Alex3
第2层打印 Alex2
最外层打印 Alex
(2)return 函数2的内存地址
age = 18 def func1(): age = 73 def func2(): print(\'---2\') return func2 val = func1() print(val) # <function func1.<locals>.func2 at 0x024601E0> val()
C:\\Python34\\python.exe C:/PycharmProjects/Luffy_project/21天入门/模块2/fun/fun3.py <function func1.<locals>.func2 at 0x006201E0> ---2
2.匿名函数
- 不需要函数名
- 语句执行的结果就是返回值
- 单条语句组成
- 作用
- 1.节省代码量
- 2.装B
(1)匿名函数
func = lambda x,y :x*y # 声明一个匿名函数 val = func(3,5) print(val) # 结果 15
(2) 匿名函数只能有一个表达式,不用也不能写return语句,表达式的结果就是其返回值。
(3)匿名函数和三元运算搭配
- 三元运算符
def cal(x,y): if x> y: return x/y else: return x*y val = cal(3,5) print(val) ### 结果 15
# 匿名函数 三元运算 func = lambda x,y : x/y if x>y else x*y val = func(5,6) print(val)
(5)匿名函数和map
- 需求,list=[1,2,3,4,5,]
- 变换成 list2 = [1,4,9,16,25]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
4.高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
- 编写高阶函数,就是让函数的参数能够接收别的函数。
只需满足以下任意一个条件,即是高阶函数
- 接受一个或多个函数作为输入
- return 返回另外一个函数本身
以上是关于8-[函数]-嵌套函数,匿名函数,高阶函数,递归函数的主要内容,如果未能解决你的问题,请参考以下文章