[内容] Python 可变参数和参数解包

内容一:可变参数和参数解包区别

1) 可变参数是在形参中,通过 * 来实现
2) 参数解包是在实参中,通过 * 来实现

内容二:可变参数的使用案例

2.1 进入 Python3 环境

# python3
>>> 

2.2 创建 1 个输出可变参数内容的对象

>>> def demo(*args,**kwargs):
...     print(args)
...     print(kwargs)
... 


补充:
1) 这里以创建 demo 对象为例
2) 这里 1 个 * 代表接收的是 1 个元组,2 个 ** 代表接收的是 1 个键值对从而形成 1 个字典

2.3 测试输出可变参数内容的对象

>>> demo()
()
{}

(补充:这里 2 个小括号 “()” 是指元组,2 个大括号是 “{}” 是指字典)

2.4 让输出可变参数内容的对象处理元组

>>> demo(1,2,3)
(1, 2, 3)
{}

(补充:这里以处理元组 1,2,3 为例)

2.5 让输出可变参数内容的对象处理元组和字典

>>> demo(1,2,3,c='2')
(1, 2, 3)
{'c': '2'}

(补充:这里以处理元组 1,2,3 和字典 c=’2′ 为例)

内容三:参数解包的使用案例

3.1 进入 Python3 环境

# python3
>>> 

3.2 创建 1 个进行参数解包的对象

>>> def demo(a,b,c):
...     print(a,b,c)
...

3.3 测试进行参数解包的对象

>>> demo(1,2,3)
1 2 3

3.4 让进行参数解包的对象处理元组

>>> args = (1,2,3)
>>> demo(*args)
1 2 3

3.5 让进行参数解包的对象处理字典

>>> kwargs1 = { 'a':'a1','b':'b2','c':'c3'}
>>> demo(**kwargs1)
a1 b2 c3