zoukankan      html  css  js  c++  java
  • 装饰器

    1、什么是装饰器?

      所谓装饰器,其实就是自己定义的函数,而这个函数的基础是基于闭包的。

    2、装饰器的作用又是什么呢?

      之所以要有装饰器就是为了,在不改变原来的函数调用的情况下,去添加一些功能。比如公司的APP突然要加某个功能,但是时间很紧,根本没有时间去重新写代码,这时候就需要在原代码上写一个装饰器添加功能,然后将这个装饰器通过@+装饰器名写在原函数上。这样就可以既不改变原来函数的调用,又能添加新的功能了,作用大大滴。

    那么我们接下来写一个装饰器!

    def fun(fn):
        def inner(*args,**kwargs):
            print('我是一个装饰器')
            ret = fn(*args,**kwargs)
            return ret
        return inner
    
    @fun  #此时@fun 相当于j将test作为参数传给fun(),得到inner函数,然后重新将inner赋
    值成test。实际上就是执行了这个操作test=fun(test)
    def test(request):
        print('我是test')
        return "我是谁"
    test(1)    #此时这个test就是inner重新赋值成的test,目的就是为了不改变原来的调用方式 
    
    # 如果被装饰的函数有返回值,就需要在装饰其中用变量接收,并返回这样才能将返回值打印出来,如果不在装饰器中接收就会返回一个None    
  • 相关阅读:
    3.30作业
    3.30课堂
    3.29作业
    3,29课堂
    3。26作业
    3.26课堂
    3.25作业
    3.25课堂
    55、DOM与BOM的操作及事件的简介
    54、js的数据类型及对象
  • 原文地址:https://www.cnblogs.com/wf123/p/9763319.html
Copyright © 2011-2022 走看看