Python 函数可变参数列表*args和**kwargs
2017-12-06 16:59
826 查看
许多语言都支持可变参数列表,python也不例外。python的可变参数列表有点不太一样,有两种类型的可变参数列表,一种是元组,一种是字典。
一,元组参数列表:
(1)函数定义形式:def func(a, b, *args)。这种情况下,形参args是一个元组。函数调用时将多余的参数组合起来,形成一个元组,赋值给args。args就是这些多余参数的元组。代码示例如下:
结果如下:
('hello', 'world', 100)
(2)函数调用形式:func(a, *args)。这种情况下,实参args是一个元组。函数调用时将元组拆开,每参数对应赋值给形参。代码示例如下:
结果如下:
(1, 2, 3, 4)
二,字典参数列表:
(1)函数定义形式:def func(a, b, **kwargs)。这种情况下,形参kwargs是一个字典。函数调用时将多余的参数组合起来,形成一个字典,赋值给kwargs。kwargs就是这些多余参数的字典。代码示例如下:
结果如下:
{'y': 'Good', 'x': 3, 'z': 'Morning'}
(2)函数调用形式:func(a, **kwargs)。这种情况下,实参kwargs是一个元组。函数调用时将元组拆开,每参数对应赋值给形参。代码示例如下:
结果如下:
(1, 2, 3, 4, 5)
总结如下:
Python的可变参数*args 如果用在函数定义中,则args是元组的组合过程;如果用在函数调用中,则args是元组的分解过程。**kwargs如果用在函数定义中,则kwargs是字典的组合过程;如果用在函数调用中,则kwargs是字典的分解过程。
一,元组参数列表:
(1)函数定义形式:def func(a, b, *args)。这种情况下,形参args是一个元组。函数调用时将多余的参数组合起来,形成一个元组,赋值给args。args就是这些多余参数的元组。代码示例如下:
import os, sys def func(a, b, *args): print(args) if __name__ == '__main__': func(10, 20, 'hello', 'world', 100)
结果如下:
('hello', 'world', 100)
(2)函数调用形式:func(a, *args)。这种情况下,实参args是一个元组。函数调用时将元组拆开,每参数对应赋值给形参。代码示例如下:
import os, sys def func(a, b, c, d): print(a, b, c, d) if __name__ == '__main__': args = (2, 3, 4) func(1, *args)
结果如下:
(1, 2, 3, 4)
二,字典参数列表:
(1)函数定义形式:def func(a, b, **kwargs)。这种情况下,形参kwargs是一个字典。函数调用时将多余的参数组合起来,形成一个字典,赋值给kwargs。kwargs就是这些多余参数的字典。代码示例如下:
import os, sys def func(a, b, **kwargs): print(kwargs) if __name__ == '__main__': func(1, 2, x = 3, y = 'Good', z = 'Morning')
结果如下:
{'y': 'Good', 'x': 3, 'z': 'Morning'}
(2)函数调用形式:func(a, **kwargs)。这种情况下,实参kwargs是一个元组。函数调用时将元组拆开,每参数对应赋值给形参。代码示例如下:
import os, sys def func(a, b, x, y, z): print(a, b, x, y, z) if __name__ == '__main__': kwargs = {'x':3, 'y':4, 'z':5} func(1, 2, **kwargs)
结果如下:
(1, 2, 3, 4, 5)
总结如下:
Python的可变参数*args 如果用在函数定义中,则args是元组的组合过程;如果用在函数调用中,则args是元组的分解过程。**kwargs如果用在函数定义中,则kwargs是字典的组合过程;如果用在函数调用中,则kwargs是字典的分解过程。
相关文章推荐
- Python中函数可变参数类型(*args、**kwargs)
- Python函数可变参数* args及**kwargs 应用
- Python函数可变参数*args及**kwargs详解
- Python函数参数传递的*args和**kwargs
- python3----基础函数的参数是可变参数,将传进来的参数转成列表
- 关于python中*args,**kwargs的可变参数
- python函数可变参数*args和**kwargs区别
- python中的可变参数*args, **kwargs
- 可变长参数列表*args,**kwargs
- Python可变参数*args和**kwargs用法实例小结
- Python函数可变参数args及kwargs释义
- Python定义函数中的可变参数**kw及*args
- Python函数中*args和**kwargs来传递变长参数的用法
- 理解 Python 中的可变参数 *args 和 **kwargs:
- Python中如何使用*args 和 **kwargs (非keyworded,可变长度参数列表 keyworded形式可变长度的参数列表)
- Python3基础 函数的参数是可变参数,将传进来的参数转成列表
- Python 基础 —— 可变参数 *args 与 关键字参数 **kwargs
- python函数参数*args**kwargs用法实例
- Python——可变类型与不可变类型(即为什么函数默认参数要用元组而非列表)
- 5.1 Python 函数-默认参数,*args,**kwargs的使用;作用域-局部空间使用全局变量需要注意的事项等