• 装饰器进阶


    装饰器的进阶

    有参:在标准装饰器的外层,套了一层就需要额外的调用一程

    语法糖:@装饰器(参数)

     # 带参修饰器
    # while True:
    #     def count(a):
    #         def func(f):
    #             def fool(*args,**kwargs):
    #                 if a=="1":
    #                     print("这是第一个装饰的函数qq")
    #                     f(*args,**kwargs)
    #                 if a == "2":
    #                     print("这是第一个装饰的函数微信")
    #                     f(*args, **kwargs)
    #                 if a == "3":
    #                     print("这是第一个装饰的函数虎牙")
    #                     f(*args, **kwargs)
    #                 if a == "4":
    #                     print("这是第一个装饰的函数腾讯")
    #                     f(*args, **kwargs)
    #             return fool
    #         return func
    #
    #     msg="""
    #     1.qq
    #     2.微信
    #     3.虎牙
    #     4.腾讯
    #     """
    #     s=input(msg+"请输入选择的序号")
    #     @count(s)
    #     def cen(*args,**kwargs):
    #         print(f"这是被修饰函数{args}")
    #     # func=count(s)
    #     # cen=func(cen)
    #     cen(1)
    

    多个修饰器修饰一个函数

    多个装饰器修饰一个函数的时候,先执行离被修饰函数最近的装饰器

    小技巧:V

    # #2多个修饰器修饰一个函数
    # def func1(f):
    #     def fool(*args,**kwargs):
    #         print("这是第一个修饰器的开始")
    #         f(*args,**kwargs)
    #         print("这是第一个修饰器的结束")
    #     return fool
    #
    # def func2(f):
    #     def fool(*args,**kwargs):
    #         print("这是第二个修饰器的开始")
    #         f(*args,**kwargs)
    #         print("这是第二个修饰器的结束")
    #     return fool
    #
    # def func3(f):
    #     def fool(*args,**kwargs):
    #         print("这是第三个修饰器的开始")
    #         f(*args,**kwargs)
    #         print("这是第三个修饰器的结束")
    #     return fool
    # @func1
    # @func2
    # @func3
    # def cen(*args,**kwargs):
    #     print("请修饰这个函数")
    # # cen=func3(cen)
    # # cen=func2(cen)
    # # cen=func1(cen)
    # cen()
    

    递归

    一递一规

    1,不断调用自己本身

    2,有明确的终止条件

    # 3递归
    # def cen(i):
    #     if i==3:
    #         return 38
    #     else:
    #         return cen(i+1)-2
    # print(cen(1))
    
    
    lis=["世界","明天","你还",["在","那"],"里",["是","吗"]]
    def cen(lis):
        for i in lis:
            if type(i)==list:
                cen(i)
            else:
                print(i)
    cen(lis)
    
    
  • 相关阅读:
    python中字典排序,列表中的字典排序
    Python模块:operator简单介绍
    java 物理资源回收 finally与try
    Eclipse相对路径
    java Lambda
    java 匿名内部类
    java File类
    java单例类
    java 创建子类
    jvm运行时数据区域
  • 原文地址:https://www.cnblogs.com/python25/p/11402565.html
Copyright © 2020-2023  润新知