python自定义函数修饰器

python自定义函数修饰器的格式和引用如下:

首先定义一个函数:

def xxx1:
 xxxx

然后在需要用到函数修饰器的函数上方是使用@xxx1的方式对该函数进行修饰:

@xxx1
def helloWork():
   xxxxx

@修饰函数,实际就是透明的修复和增强被修饰的函数,用@修饰函数修饰了被修饰函数,在调用被修饰函数时,实际就是调用了@修饰函数的实际定义的函数,在实际修饰定义函数中,可以提前或者稍后做一些事情,然后再根据需要来是否在调用原来的被修饰函数。值得注意的是,被修饰函数回作为一个参数传入修饰函数里面。

修饰函数的一半定义如下:

#!/usr/bin/python
 
import functools
 
def prepare(flag):
    def wrapper(method):
        @functools.wraps(method)
        def _wapper(*args, **kwargs):
            if flag:
                print("call %s" % _wapper.__name__)
            method(*args, **kwargs)
        return _wapper
    return wrapper
 
@prepare(False)
def old_func(*args, **kwargs):
    print("old func")
 
old_func()

里面的@functools.wraps()的作用是将传入的函数里面的属性付值给修饰函数
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值