位置参数
按照从左到右顺序直接定义的“变量名”(形参)
特点:必须被传值,多一个少一个都不行
位置实参
按照从左到右的顺序依次传入的值
特点:按照顺序与形参一一对应
def f1(x, y):
print(x, y)
f1(1, 2) # 等于赋值 x=1 y=2
![c7c2da86ecfb4ea022ad0b4e829c2cc8.png](https://img-blog.csdnimg.cn/img_convert/c7c2da86ecfb4ea022ad0b4e829c2cc8.png)
关键字参数
定义和位置参数一样
特点
在函数调用的阶段,按照key=value的形式传入的值
def f1(x, y):
print(x, y)
f1(x = 1, y = 2) # 等于赋值 x=1 y=2
![ec5409c10ad8a1c27f299e316f3e0802.png](https://img-blog.csdnimg.cn/img_convert/ec5409c10ad8a1c27f299e316f3e0802.png)
混合使用注意点
1.位置实参必须放在关键字实参前
2.不能为同一个形参,重复传值
默认参数
形参:
在定义函数阶段,就已经被赋值的形参,称之为默认参数
特点:
在定义阶段就已经被赋值,意味着调用阶段可以不用为其传值(传值使用传的值)
def f1(x = 1, y = 2):
print(x, y)
f1(x = 3)
![910f24034c20f1f1425fd5a8125c2a8f.png](https://img-blog.csdnimg.cn/img_convert/910f24034c20f1f1425fd5a8125c2a8f.png)
位置形参与默认形参混用
1.位置形参必须在默认形参的左面
2.默认参数的值,是在函数定义阶段被赋值的,准确来说被赋值的是内存地址
3.虽然默认值可以被指定成任意类型,但是不推荐使用可变类型