Python_34有N个参数的装饰器

装饰器与变参详解
本文详细介绍了Python中装饰器的使用方法,并演示了如何定义能够接收任意数量和类型的参数的函数。通过具体实例,展示了如何利用装饰器增强函数功能而不修改原始函数,以及如何使用*args和**kwargs实现变长参数列表。
def outer(f):
def innner(a1,a2):
print ('hello')
print ('hello')
print ('hello')
print ('hello')
print ('hello')
r=f(a1,a2)
return r
return innner

@outer
def f1(a1,a2):
print ('FFFF')
return a1+a2


print (f1(1,2))
————————————————————————————————————————————————————————输出

hello
hello
hello
hello
hello
FFFF
3

不改变原来函数结果的基础上添加参数

变参数个数的函数

可以让函数接受任意个参数  用(*arg)   可以输入任意个同一类型的参数      

用( *arg,**kwargs)可以输入任意万能参数各种类型

def f1(*arg,**kwargs):   

    print (arg)      #arg是一个元组

    print (kwargs)     #kwargs是一个字典

 

 

def f1(*arg):
print (arg)
f1(1234,23,54,6)
输出——————————————————————

(1234, 23, 54, 6)

 

 

def f1(*args,**kwargs):
print (args)
print (kwargs)
f1('d','f','g',d=123)
输出——————————————————————————————————————

('d', 'f', 'g')
{'d': 123}

 

各种参数均可的装饰器:

def zsq(func):
def inner(*args,**kwargs):
print (args)
print (kwargs)
func(*args,**kwargs)
return inner
@zsq
def f1(a1,a2):
print (a1)
print (a2)
f1('d','f')
@zsq
def f2(a1,a2,a3):
print (a1)
print (a2)
f2('d','f','g')



 

转载于:https://www.cnblogs.com/beyondtring/p/8479423.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值