Python之Python高级特性3.0-装饰器

 

6.装饰器

(1)闭包:函数里面嵌套函数
(2)装饰器应用场景:在执行函数之前或之后做某种操作
(3)装饰器调用:Python的语法糖:@装饰器函数名,用于定义函数之前

(4)装饰器特性:闭包结构,返回值为函数

(5)装饰器嵌套:有多个装饰器时从下到上调用,从上到下执行

(6)装饰器参数:原装饰器外层再加一层函数,用来接收装饰器参数

(7)装饰器常用函数:

a. functools.wraps(函数名):防止被装饰函数属性被改变(fun.__name__,fun.__doc__)

 

 

b. inspect.getcallargs(函数名,可变参数,关键字参数):被装饰函数实参类型不定时自动封装成字典.key值:形参,value值:实参

 

(8)总结:装饰器模板

a. 

import functools

def #装饰器名称(fun):
    @functools.wraps(fun)
    def wrapper(*args, **kwargs):
        # 函数执行前的操作
        temp = fun(*args, **kwargs)
        # 函数执行后的操作
        return temp
    return wrapper

b.

import functools

def 装饰器名称(fun):
    @functools.wraps(fun)
    def wrapper(*args, **kwargs): 
        if #条件判断:
            temp = fun(*args, **kwargs)
            return temp
        else:
            #报错
    return wrapper

c.

import functools

def #装饰器名称(#装饰器参数):
    def inner(fun):
        @functools.wraps(fun)
        def wrapper(*args, **kwargs):
            # 函数执行前的操作
            temp = fun(*args, **kwargs)
            # 函数执行后的操作
            return temp
        return wrapper
    return inner

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值