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

    一 为何要用装饰器

    #开放封闭原则:对修改封闭,对扩展开放

    二 什么是装饰器

    装饰器他人的器具,本身可以是任意可调用对象,被装饰者也可以是任意可调用对象。
    强调装饰器的原则:1 不修改被装饰对象的源代码 2 不修改被装饰对象的调用方式
    装饰器的目标:在遵循1和2的前提下,为被装饰对象添加上新功能



    def outer(func):
    def inner():
    print("我是装饰之后的")
    func()
    print('4444')
    return r


    @outer
    def f1():
    print("我是老函数")
    return True

    f1()


    传参之后的装饰器


    def outer(func):
    def inner(*arg,**kwargs):
    print('我是新人')
    ret = func(*arg,**kwargs)
    print('lalala')
    return ret


    return inner

    @outer
    def index(*args,**kwargs):
    print('我是原函数')
    return index


    index(1,2)


















    多个装饰器同一个函数,并且含有参数

    def outer_0(func):
    def inner(*args,**kwargs):
    print('3.5')
    r = func(*args,**kwargs)
    return r

    return inner

    def outer(func):
    def inner(*args,**kwargs):
    print('123')
    r = func(*args,**kwargs)
    print('456')
    return r
    return inner
    @outer_0
    @outer
    def f1(a1,a2):
    print('f1')
    return "fff"

    f1(1,2)
    流程如下






  • 相关阅读:
    团队作业(三):确定分工
    团队作业(二):项目选题
    团队冲刺DAY3
    团队冲刺DAY4
    团队冲刺DAY6
    团队冲刺DAY1
    团队冲刺DAY5
    团队冲刺DAY7
    团队作业(四):描述设计
    【自学Spring Boot】什么是Spring Boot
  • 原文地址:https://www.cnblogs.com/ouyang99-/p/9050159.html
Copyright © 2011-2022 走看看