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-[函数]-嵌套函数,匿名函数,高阶函数,递归函数的主要内容,如果未能解决你的问题,请参考以下文章

python--递归函数匿名函数嵌套函数高阶函数装饰器生成器迭代器

6-1:递归内置函数匿名函数

11.高阶函数(匿名/*递归/函数式)对象编程基础

Day3-递归函数高阶函数匿名函数内置函数

函数-内置函数,匿名函数,嵌套函数,高阶函数,序列化

函数(匿名函数,嵌套函数,高阶函数,装饰器)