python 函数参数

# 函数的参数分为两种:# 形参:在定义阶段括号内指定的参数,在定义阶段不暂用内存空间,相当于变量名# 实参:在调用阶段括号内传入的值,相当于值# 在调用阶段,实参的值会绑定给形参,在调用结束后解除绑定def foo(x, y):    print(x, y)foo(1, 2)##################################################### 在python中参数的分类:# 1、位置参数:按照从左到右的顺序依次定义的参数# 通常用于经常变化的参数# 位置形参:定义完之后,必须被传值,多一个少一个都不行# 位置实参:与形参一一对应传值def foo1(x, y):    print(x, y)foo1(1 ,2)############################################################################### 关键字参数:在函数调用时,按照key=value的形式定义的实参# 特点:指名道姓的给形参传值,不再依赖于位置# 注意:关键字实参必须在位置实参的后面# 不能为用一个参数赋值多次def foo2(x, y):    print(x, y)foo1(y=1 ,x=2)############################################################################# 3、默认参数:在函数定义阶段,就已经为形参赋值了# 通常用于不变化的情况# 默认参数必须放到位置形参后面# 默认参数的值只在定义时被赋值一次,定义之后的修改都不会影响默认参数的值# 默认参数的值通常应该是不可变类型def foo3(x, y=1):    print(x,y)foo3(1, 6)   # 输出结果:1 6foo3(5)      # 输出结果:5 1############################################################## 默认参数的值只在定义时被赋值一次,定义之后的修改都不会影响默认参数的值res = 1def foo5(x, y=res):    print(x, y)res = 10foo5(‘aaaaa‘)     # 输出结果:aaaaa 1