zoukankan      html  css  js  c++  java
  • 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---

  • 相关阅读:
    Spring+Spring MVC+Hibernate框架搭建实例
    数据结构:串
    为什么java中用枚举实现单例模式会更好
    验证码原理分析及实现
    Servlet监听器——实现在线登录人数统计小例子
    IntelliJ IDEA 远程调试 Tomcat 的方法
    SQL注入的一些技巧分享
    Java中String与byte[]的转换
    JavaSE基础:集合类
    二叉树的非递归遍历
  • 原文地址:https://www.cnblogs.com/sklhtml/p/9447194.html
Copyright © 2011-2022 走看看