zoukankan      html  css  js  c++  java
  • 3.20---函数对象与闭包函数应用

    1、函数对象优化多分支if的代码

    def func1():
        print("功能1")
    def func2():
        print("功能2")
    def func3():
        print("功能3")
    def func4():
        print("功能4")
    dic_func = {"0":("退出",exit),"1":("功能1",func1),"2":("功能2",func1),"3":("功能3",func1),"4":("功能4",func1)}
    
    import time
    while True:
        for key in dic_func:
            print(key,dic_func[key][0])
        cmd = input("请输入指令:")
        if cmd.isdigit():
            if cmd in dic_func:
                dic_func[cmd][1]()
            else:
                print("不存在该指令!")
        else:
            print("请输入数字!")
        input("请按Enter键继续。")

    2、编写计数器功能,要求调用一次在原有的基础上加一

    '''
            温馨提示:
                I:需要用到的知识点:闭包函数+nonlocal
                II:核心功能如下:
                    def counter():
                        x+=1
                        return x
    
            要求最终效果类似
                print(couter()) # 1
                print(couter()) # 2
                print(couter()) # 3
                print(couter()) # 4
                print(couter()) # 5
    '''
    def outter():
        x = 0
        def couter():
            nonlocal x
            x += 1          # 相当于x = x + 1 NameError:name 'couter' is not defined
            return x
        return couter
    
    
    couter = outter()
    print(couter())
    print(couter())
    print(couter())
    print(couter())
    print(couter())
  • 相关阅读:
    ASP.NET Core 中的路由约束
    专治拖延症,好方法
    虚拟机hadoop集群搭建
    python爬虫+词云图,爬取网易云音乐评论
    gp数据库运维
    kafka和springboot整合应用
    kafka配置监控和消费者测试
    集群运维ansible
    SpringBoot和微服务
    python每天定时发送短信脚本
  • 原文地址:https://www.cnblogs.com/zhubincheng/p/12534847.html
Copyright © 2011-2022 走看看