python装饰器——获取被修饰的函数参数

在装饰器中,获取被装饰器的函数的参数

装饰器中,有两个方法可以获取参数。

  1. kwargs获取关键词参数
    第一种:在传入实参的时候指定了关键字。比如a=3,b=4,这种情况是通过kwargs传输的。返回的值是一个dict字典。可以通过args获取

  2. args获取位置参数
    第二种:在传入实参的时候没有指定关键字,比如1,2,3。这时候走的是args,返回的值是元祖。可以通过args获取

注:一定要加上@wraps,其常用于装饰器内部,保护被装饰的函数func属性不被修改。

from functools import wraps

def ak(f):
	@wraps(f)
    def wrapper(*args, **kwargs):
        print('获取位置参数内容', *args)
        print('获取位置参数元祖', args)
        print('获取关键字参数的key',*kwargs)
        print('获取关键字参数的dict',kwargs)
        return f(*args, **kwargs)
    return wrapper
 
@ak
def fun1(a=0,b=0,c=8):
    print("全是关键字参数")
 
@ak
def fun2(a,b,c):
    print("全是位置参数")
 
if __name__ == '__main__':
    fun1(a=3,b=4)
    fun2(1,2,3)

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值