• python 装饰器--对有无参数的函数进行装饰


    # 使用装饰器无参数的函数进行装饰
    # def func(funcionName):
      # print('-----1------')
      # def func_in():
        # print('--func_in---')
        # funcionName()
        # print('--func_2---')
      # print('-----2------')
      # print('-----3------')
      # return func_in

    # @func # test = func(test)
    # def test():
      # print('----testa=%d,b=%d-----'%)

    # test()
    # -----1------
    # -----2------
    # -----3------
    # --func_in---
    # ----test-----
    # --func_2---


    # 使用装饰器对有参数的函数进行装饰
    # def func(funcionName):
      # print('-----1------')
      # def func_in(a,b): #如果a,b没有定义,那么会导致40号调用失败
        # print('--func_in---')
        # funcionName(a,b) # 如果没有把a,b当做实参进行传递,那么会导致调用37行失败
        # print('--func_2---')
      # print('-----2------')
      # print('-----3------')
      # return func_in

    # @func
    # def test(a,b): #37行
    # print('----test---a=%d,b=%d-----'%(a,b))

    # test(10,11) #40行

    # 对不定性参数传递
    def func(funcionName):
      print('-----func---1------')
      def func_in(*args,**kwargs):
        # *args 将来是以元组保存,没有进行拆包
        # **kwargs 将来是以字典保存,没有进行拆包

        print('--func_in---1---')
        funcionName(*args,**kwargs)
        print('--func_in----2---')
      print('-----func---2------')
      return func_in

    @func
    def test(a,b,c):
    print('----test---a=%d,b=%d,c=%d-----'%(a,b,c))


    @func
    def test2(a,b,c,d):
      print('----test---a=%d,b=%d,c=%d,d=%d-----'%(a,b,c,d))

    test(10,11,9)
    test2(10,11,9,11)
    # -----func---1------
    # -----func---2------
    # -----func---1------
    # -----func---2------
    # --func_in---1---
    # ----test---a=10,b=11,c=9-----
    # --func_in----2---
    # --func_in---1---
    # ----test---a=10,b=11,c=9,d=11-----
    # --func_in----2---

  • 相关阅读:
    文献收录船舶建造的现代工程分解结构
    FLEX MDI窗口开发实例(2)
    收录国外造船信息Pursuit of a product work breakdown structure (PWBS)
    FLEX MDI窗口开发实例
    买了本<<flash actionscript 3.0殿堂之路>>
    今天我捐款了
    记Lambda的一个使用方法
    JXMS 低代码开发平台
    我的博客也Sliverlight
    代码编辑插件使用
  • 原文地址:https://www.cnblogs.com/sklhtml/p/9447194.html
Copyright © 2020-2023  润新知