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

    装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象

    应用场景:比如插入日志、性能测试、事务处理、缓存、权限校验等场景

    一、装饰器的简单事例

    def timer(func):
        def inner(*args,**kwargs):
            """执行函数前要做的"""
            ret=func(*args,**kwargs)
            """执行函数后要做的"""
            return ret
        return inner
    @timer
    def func():
        print('我是一只小小鸟')
    
    func()#我是一只小小鸟

    在修饰的func函数前打印"哈哈哈",函数执行后打印"呵呵"

    def timer(func):
        def inner(*args,**kwargs):
            print('哈哈哈')
            ret=func(*args,**kwargs)
            print('呵呵呵')
            return ret
        return inner
    
    @timer
    def func():
        print('我是一只小小鸟')
    func()
    """
    哈哈哈
    我是一只小小鸟
    呵呵呵
    """

    二、带参数的装饰器

    def timer(func):
        def inner(*args,**kwargs):
            print('哈哈哈')
            ret=func(*args,**kwargs)
            print('呵呵呵')
            return ret
        return inner
    
    @timer
    def func(name):
        print('%s是一只小小鸟'%name)
    func('abc')
    """
    哈哈哈
    abc是一只小小鸟
    呵呵呵
    """
  • 相关阅读:
    异步初体验
    ASPNET登陆总结
    14年最后一天了
    个人阅读作业
    软工个人博客-week7
    软工结对编程作业-人员
    软工结对编程作业-(附加题)
    软工结对编程作业-(非附加题)
    个人博客作业Week3
    软工个人作业-博客作业-WEEK2
  • 原文地址:https://www.cnblogs.com/z-x-y/p/9177903.html
Copyright © 2011-2022 走看看