zoukankan      html  css  js  c++  java
  • 2019.04.07 装饰器介绍

    文章来自网易云课堂

    装饰器实际上就是一个函数,所有要先定义这个函数

    然后里面还有一个函数,记得返回这个函数

    当做了这个功能装饰器之后,就可以想在某个函数中添加一些想要的功能了

    而并没有修改原先函数的基础上给这个函数增加了一些功能

    比如当自己已经写完了一个项目,然后想在这个项目中的函数中都添加hello world

    有两个特别之处:

      参数是一个函数

      返回值是一个函数

    #在打印run之前,先要打印一个hello world

    #在所有的函数执行之前,都要打印一个 hello world

    #装饰器使用时通过@符号,放在函数的上面

    #装饰器中定义的函数,要使用*args,**kwargs两对兄弟的组合,并且原始函数执行的时候也要放进去

    #需要使用functools.wraps在装饰器中的函数上把传进来的这个函数进行包裹,这样就不会丢失原来的函数的__name__等属性。

    def zhuanshiqi(func):

      @wraps

      def _wrapper(*args,**kwargs)

        print('hello world')

           response  = func(*args,**kwargs)    run函数有返回值得话要接受的

        return response

      return _wrapper

    @zhuangshiqi

    def run():

      pass

    @zhuangshiqi: run =  zhuangshiqi(run)= _wrapper

    run.__name__  是wrapper  

    from functools import wraps

  • 相关阅读:
    吴恩达深度学习与神经网络
    吴恩达机器学习的ppt以及作业编程练习题答案(别人总结的)
    关于机器学习的小科普
    质因数分解
    FFT
    Luogu P1262 间谍网络
    关于次短路
    Luogu P1955 [NOI2015]程序自动分析
    Luogu P1041传染病控制
    Bzoj 1731 POJ 3169 Luogu P4878 Layout
  • 原文地址:https://www.cnblogs.com/Py-king/p/10664934.html
Copyright © 2011-2022 走看看