认识参数

  • 参数,函数参数的作用是传递数据给函数使用
  • 形参,由于定义函数时参数不是实际数据,会在调用函数时传递给他们实际数据,所以定义函数时的参数叫形式参数,简称形参。
  • 实参,实际意义上的参数,是一个实际存在的参数,可以是字符串或是数字等,调用函数时用到的参数
  • 位置参数,位置参数就是按照形参中给定的参数的顺序
  • 关键字参数,在传递参数的时候,可以按照形参的名字给定参数
  • 默认参数,函数定义时,为参数设置一个默认值,当函数调用时,没有传入这个参数值,直接使用这个默认值
  • 可变参数,可变参数有两种形式:一种是 *args, 另一种是 **kwargs
    • *args:这种形式表示接受任意多个实际参数将其放到一个元组中。
    • **kwargs:这种形式表示接受任意多个实际参数将其放到一个字典中,类似关键字参数


参数类型

形参与实参

形参相当于变量,定义函数时指定的参数; 实参是在调用函数时传递进去的参数,一般传递真实数据

  1. def add_sum(a, b): # a 和 b (占位)参数,叫 形参
  2. result = a + b
  3. print(result)
  4. add_sum(1, 2) # 调用函数时传入真实的数据如 1,2 ,叫做 实参

位置参数

在调用函数时传递的实参与定义函数时的参数顺序一致,且传递和定义参数的顺序及个数必须一致

  1. def user_info(name, age, gender):
  2. print(f'他的名字叫 {name},今年 {age} 岁了,性别是 {gender}')
  3. user_info('tom',18,'man')
  4. ------------------------------------------------------
  5. >>> 他的名字叫 tom,今年 18岁了,性别是 man

关键字参数

通过 键=值 形式调用函数,其中关键字的名称就是定义函数时形参的名称。关键字参数在调用时必须在位置参数后面

  1. def user_info(name, age, gender):
  2. print(f'他的名字叫{name},今年{age}岁了,性别是{gender}')
  3. user_info('jerry', gender='男', age=17)

上述代码中,调用函数时,传递的关键字实参之间可以顺序不一致

默认参数

默认参数要放在其他参数后面,但是放在缺省参数前面

  1. def user_info(name, age, gender='男'):
  2. print(f'他的名字叫{name},今年{age}岁了,性别是{gender}')
  3. user_info('jerry', 17) # 不传值则使用默认值
  4. user_info('tom', 17, gender='女') # 传值则修改默认参数值

不定长参数

也叫可变参数、缺省参数,用于不确定调用的时候传递多少个参数(不传参也可以)的场景,可用缺省位置参数、关键字参数来进行参数传递

  • 基于元组的可变参数: *args缺省位置参数 ```python def user_info(*args):
    print(args) # 传递的所有参数都会被 args 变量收集

user_info(‘tom’) >>> (‘tom’,) user_info(‘t0m’,18) >>> (‘t0m’,18)

  1. > args 相当于变量名,返回的是元组
  2. - **基于字典的可变参数: **kwargs,缺省关键字传递**
  3. ```python
  4. def user_info(**kwargs):
  5. print(kwargs) # 传递的所有关键字参数都会被 kwargs 变量收集
  6. user_info(age=18, gender='男') >>> {'age': 18, 'gender': '男'}

kwargs 相当于变量名,返回的是字典,类似组包过程