自定义函数:特殊参数
def show(name="jack", *info):
print(name) #jack
print(info) #(22, '男')
show("jack",22,"男")
可以看出22,"男"
全部归为了函数的第二个参数*info
。
我们可以看到打印这个info
参数结果是:小括号包起来的形式。
函数的特殊参数升级
上面见识了函数参数*xxx
这种形式,下面看看2个*
的形式。
def show(name="jack", **info):
print(name) #jack
print(info) #{'sex': '男', 'age': 22}
show("jack",age=22,sex="男")
**info
注意此时是2个*
。函数内部打印得到的是一个看着像json结构的字符串。
三种参数到底是什么玩意?有什么区别?
我们用Pytone内置函数type
来看看
def show(name="jack",*info1, **info2):
print(type(name))
print(type(info1))
print(type(info2))
show("jack",22,"男",age=22,sex="男")
猜一猜:打印这3种参数的类型会是什么?
<class 'str'>
<class 'tuple'>
<class 'dict'>
name
是字符串,*info1
是元组,**info2
是字典。
元组tuple
(22, '男')
元素用一个小括号包起来的形式。