首页 > 代码库 > Python之路-装饰器
Python之路-装饰器
定义:装饰器本质是函数,它用于装饰其他函数(就是为其他函数添加附加功能)
原则:
- 不能修改被装饰的函数的源代码
- 不能修改被装饰的函数的调用方式
装饰器预备知识:
- 函数名即“变量”
- 高阶函数
- 把一个函数名当做实参传给另一个函数(在不修改被装饰函数源码的情况下为其添加功能)
- 返回值中包含函数名(不修改函数的调用方式)
- 嵌套函数
- 高阶函数+嵌套函数==装饰器
示例:
#!usr/bin/env python# -*- coding:utf-8 -*-import timedef 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()
Python之路-装饰器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。