ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python-装饰器-被装饰函数带参(入参*args、**kwargs学习)

2022-05-08 22:03:11  阅读:239  来源: 互联网

标签:fun1 python args 键值 time kwargs 装饰 def


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有