• 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:Python34python.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 返回另外一个函数本身

      

      

  • 相关阅读:
    精通android体系架构、mvc、常见的设计模式、控制反转(ioc)
    android UI 开发汇总
    Android 即时通讯 XMPP
    jquery $.ajax运行不正常我的调试
    [开发知识点] 使用JQuery 将DataTable 转化成JSON数据,前端无法处理JSON数据的注意事项
    [CSS]如何查看每个元素的盒子
    使用ip策略关闭不用的端口
    [小问题]?和@区别
    [修改远程桌面连接端口]
    [开发笔记]sql server中在单引号中包含单引号怎么办
  • 原文地址:https://www.cnblogs.com/venicid/p/8409924.html
Copyright © 2020-2023  润新知