一、*args与**kwargs介绍
*args是非关键字参数,用于元组,**kwargs是关键字参数 (字典) 也就是说args表示任何多个无名参数,然而kwags表示一个一个有着对应关系的关键字参数, 在使用的时候需要注意,*args要在**kwags之前,不然会发生语法错误
二、args使用案例和kwargs使用案例
# coding=utf-8 """ @project: panglu_test_59 @Author:gaojs @file: test017.py @date:2022/7/13 14:00 @blogs: https://www.gaojs.com.cn """ def arg_test(a, b, c, d, arg): """ arg练习 """ print(a, b, c, d, arg) def args_test(a, b, *args): """ *args练习 """ print(a, b, args) print(type(args)) def kwargs_test(**kwargs): """ *args练习 """ print(kwargs, type(kwargs)) def args_kwargs_test(arg, arg1, *args, **kwargs): """ *args练习 """ print(arg, arg1, args, kwargs) if __name__ == '__main__': # arg练习 arg_test(1, 2, 3, 4, 444) # args练习 args_test(6, 5, 55, 798, 5456) # kwargs练习:结果是字典 kwargs_test(a=1, b=2, c=3, d=4) # 混合练习 args_kwargs_test(1, 2, 3, 4, 5, 6, a=7, b=8, c=9)
输出结果:
E:\panglu_test_59\venv\Scripts\python.exe E:/panglu_test_59/test017.py 1 2 3 4 444 6 5 (55, 798, 5456) <class 'tuple'> {'a': 1, 'b': 2, 'c': 3, 'd': 4} <class 'dict'> 1 2 (3, 4, 5, 6) {'a': 7, 'b': 8, 'c': 9} Process finished with exit code 0