python-装饰器-被装饰函数带参(入参*args、**kwargs学习)
作者:互联网
import time
# 装饰函数
def show_time(func):
def inner(*args,**kwargs):
begin_time = time.time()
func(*args,**kwargs)
end_time = time.time()
print('服务器响应时间:',end_time-begin_time)
return inner
# 被装饰函数,有入参
@show_time
def foo(test_case_name):
print(test_case_name)
time.sleep(1)
# foo = show_time(foo)
foo('有入参')
一、*args
【1】*args:表示位置参数,入参类型是列表或者元祖,发送一个非键值对的可变数量的参数列表给函数
【2】*:会把传入的多个参数打包成元祖,赋值给形参args
# *args:发送一个非键值对的可变数量的参数列表给函数
# * :会把传入的多个参数打包成元祖,赋值给形参args
def fun1(*args):
print(args)
fun1(1) # 1
fun1(1,2) # 1 2
fun1((1,2),1) # (1,2) 1
fun1([1,2],2) # [1,2] 2
fun1('aaaaaa')
# fun1(a=1,b=2) # 关键字参数不行,会报错
二、**kwargs
【1】**kwargs:发送一个键值对的可变数量的参数列表给函数
【2】**:会把传入的多个键值对打包成字典,赋值给kwargs
# **kwargs:发送一个键值对的可变数量的参数列表给函数
# ** :会把传入的多个键值对打包成字典,赋值给kwargs
def fun2(**kwargs):
print(kwargs)
fun2(a=1) # {'a': 1}
fun2(a=1,b=2) # {'a': 1, 'b': 2}
标签:fun1,python,args,键值,time,kwargs,装饰,def 来源: https://www.cnblogs.com/flowers-pansy/p/16247022.html