函数参数传递
(1)位置参数
位置参数是指调用时的参数个数和顺序必须与定义的参数个数和顺序相同
例如:
定义函数时声明了两个参数,但是我在调用函数时只有一个赋值,程序报错TypeError: birthday() missing 1 required positional argument: 'age'。
再例如,参数顺序不相同:
上图错误将10赋值给了name参数,但是name是字符串类型,程序出错
所以调用函数时参数个数和顺序必须与定义的参数个数和顺序相同,修改:
(2)关键字参数
关键字参数是在函数调用时,使用 “形参名称=值” 的方式进行传参,传递参数顺序可以与定义时参数的顺序不同,例如;
特别注意!!我们可以同时使用两种不同的传参方式
如上图使用了两种,程序正常运行
但是位置传参必须在前,关键字传参在后
上图 关键字传参在前,报错
(3)默认值参数
默认值参数是在函数定义时,直接对形式参数进行赋值,在调用时如果该参数不传值,将使用默认值,如果该参数传值,则使用传递的值
如上图,定义时添加默认值并使用默认值
如上图,可以使用位置传参和关键字传参
也可以和位置传参一起使用但是也要注意位置传参在前,如
位置传参在前,运行成功
位置传参在后,程序报错
所以,当位置参数和默认值参数同时存在时,应遵循位置参数在前,默认值参数在后。