zoukankan      html  css  js  c++  java
  • Python基础-装饰器

    定义:装饰器本质是函数,它用于装饰其他函数(就是为其他函数添加附加功能)
    原则:
    1. 不能修改被装饰的函数的源代码
    2. 不能修改被装饰的函数的调用方式
    装饰器预备知识:
    1. 函数名即“变量”
    2. 高阶函数
      1. 把一个函数名当做实参传给另一个函数(在不修改被装饰函数源码的情况下为其添加功能)
      2. 返回值中包含函数名(不修改函数的调用方式)
    3. 嵌套函数
    4. 高阶函数+嵌套函数==装饰器
    示例:
    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    import time
    def deco(func):
        def wrapper(*args,**kwargs): #*args,**kwargs可以实现myfunc传出任意参数
            start_time = time.time()
            res = func(*args,**kwargs)
            end_time = time.time()
            print("elapsed time %s"%(end_time-start_time))
            return res    #如果func有返回值那么将其返回
        return wrapper
    @deco    #等价于 myfunc = deco(myfunc)    如果还想想装饰器中传入其他参数,那么可以在deco后传入参数 例如:deco("xxx"),同时装饰器要增加一次函数嵌套,且通过deco传入的参数应位于最外层即
    decorator("xxx")
    def myfunc():
        time.sleep(3)
        print("in myfunc")
    myfunc()
     
  • 相关阅读:
    HTTP协议图解
    .NET 发布网站步骤
    使用php在服务器端生成图文验证码
    SQLServer复习文档1(with C#)
    理解 JavaScript 原型 / 原型链
    浅谈瀑布流
    懒加载
    jQuery ajax
    jQuery 动画效果 与 动画队列
    jQuery 事件
  • 原文地址:https://www.cnblogs.com/chiang97912/p/7233481.html
Copyright © 2011-2022 走看看