1. 默认参数
我们可以通过“="为形参指定默认值,这样函数调用过程中如果不传对应实参,就会使用默认值
。
- 在不给任何实参的情况下
def add(x=100,y=300):
return x + y
print(add())
运行结果:400
- 在给实参的情况下
def add(x=100,y=300):
return x + y
print(add(4,6))
运行结果:10
- 少传一个的情况下,向左匹配
def add(x=100,y=300):
return x + y
print(add(6))
运行结果:306
2. 指定实参值对应的形参
在函数调用过程中,我们可以通过
<形参名字>=<值>
的方式传递实参,这样就可以跳过其他参数,不按形参顺序传参
def add(x=100,y=300):
return x + y
print(add(y=2000))
运行结果:2100
3. 接受任意多个key-value方式的参数
我们可以通过使用“**”修饰形参,这样,可以接受任意多个key-value键值对方式的实参。
所有的通过指定形参名传递的参数,会被封装为字典。
def fun(**args):
print(args)
fun(k1="value1",k2="value2",k3="value3")
运行结果:{'k1': 'value1', 'k2': 'value2', 'k3': 'value3'}
4. 字典展开为key-value键值对的多个参数
我们可以将多个key-value
键值对存放在字典中,然后使用“**”进行展开
不使用“**”的情况下回报错
def fun(**args):
print(args)
mydict = {"k1" :"value1","k2":"value2","k3":"value3"}
fun(mydict)
报错:
Traceback (most recent call last):
File "e:/MyselfCode/ShellMad/Python/fistpy.py", line 4, in <module>
fun(mydict)
TypeError: fun() takes 0 positional arguments but 1 was given
这是因为mydict
在未展开的情况下,只是一个参数,不能被当做键值对。
因此可以通过“**”进行展开
def fun(**args):
print(args)
mydict = {"k1" :"value1","k2":"value2","k3":"value3"}
fun(**mydict)
运行结果:
{'k1': 'value1', 'k2': 'value2', 'k3': 'value3'}
5. 学习视频地址:默认参、字典的展开