首页 > 编程语言 > 详细

Python 学习笔记: 装饰器

时间:2018-11-14 18:04:34      阅读:129      评论:0      收藏:0      [点我收藏+]

Python 装饰器

1 装饰器程序初步

技术分享图片
import time


def func():
    time.sleep(0.01)
    print("程序运行干活。。。")


def timer(f):
    def inner():
        time1 = time.time()
        f()
        time2 = time.time()
        print(time2-time1)
    return inner


func = timer(func)
func()
View Code

使用@符号

import time

def timer(f):
    def inner():
        time1 = time.time()
        f()
        time2 = time.time()
        print(time2-time1)
    return inner

@timer
def func():
    time.sleep(0.01)
    print("程序运行干活。。。")

func()

 

2 装饰器的定式:

def wrapper(func):  # 装饰器函数, func是被装饰的函数
    def inner(*args, **kwargs):
        ‘‘‘装饰器在装饰的函数运行前要执行的工作‘‘‘
        ret = func(*args,**kwargs)
        ‘‘‘装饰器在装饰的函数运行后要执行的工作 ‘‘‘
        return ret  # 返回被装饰函数的执行结果
    return inner
 
@wrapper          # 语法糖, qqqing = wrapper(qqqing)
def qqqing(a,b):  # 被装饰的函数
    print(a,b)
    return max(a,b)

# 正常调用函数
print(qqqing(2,3))

 

Python 学习笔记: 装饰器

原文:https://www.cnblogs.com/yuming-python/p/9959102.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!