开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理:参数传递的方式】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/601/detail/8724
参数传递的方式
目录:
一、位置参数
二、关键字参数
一、位置参数
位置参数,将对应位置的实参赋值给对应位置的形参。
第一个实参赋值给第一个形参,第二个实参赋值给第二个形参,以此类推。
fn(1 , 2 , 3 )
1赋值给 a
2赋值给 b
3赋值给 c
一一对应
位置参数是使用最多的传递方式,但是有一个缺陷,当某个参数具有某个意义,比如a 代表...b 代表...c 代表...在调用函数传递参数的时候,需要明确各自的意义。
在使用位置参数时,需要记住形参的位置。
二、关键字参数
关键字参数,可以不按照形参定义的顺序去传递,而直接根据参数名去传递参数。
fn(b=1 , c=2 , a=3)
现在参数没有按照顺序,a 的值为 3,b 的值为 1,c 的值为 2,执行后,a=3,b=1,c=2
关键字参数的优点为,不需要记忆参数的顺序,只需要记忆参数的名称.
例print(‘hello’ , end=’’)
此时 Hello 是位置参数,end 是关键字参数
位置参数和关键字参数可以混合使用
例 fn(1,c=20)
1 为位置参数,c=20 为关键字参数
1 会赋值给 a ,20 会赋值给 c
执行后,a 为 1,c 为 20
注意,如果把 c=30 输入在前面,1 输入在后面 fn(c=30 ,1)
此时出现报错的情况,显示 positional argument follows keyword argument
翻译为位置参数跟在关键字参数后面
混合使用关键字参数和位置参数时,必须将位置参数输入在前面,后面输入关键字参数。
假如输入 fn(1,a=30)这种情况,也会报错。
因为赋予了 a 两个值,指定了位置参数后,就不要指定关键字参数。
fn(1 位置已经给到 a,后面就不能再输入 a,换成 c 后,保存即可。
这就是参数传递的两种方式,位置参数和关键字参数。