一、函数参数传递类型
函数参数传递类型 :
- 位置参数 : 函数 调用时 按照参数在函数 定义时 的位置进行传递 ; ( 形参 和 实参 顺序 和 个数 必须一一对应 )
- 关键字参数 : 函数 调用时 使用 " 键 = 值 " 的形式 , 传入参数 ;
- 缺省参数 : 函数 调用时 , 如果没有传入该参数 , 使用缺省参数默认值作为实参 ;
- 不定长参数 : 在 定义函数 时 , 不确定 调用时会传递多少个参数 , 函数调用时可以传入任意个参数 ;
1、缺省参数
" 缺省参数 " 又称为 " 默认参数 " , 在 定义函数时 , 可以为参数设置一个默认值 ,
在调用函数时 , 可以选择 传入该 缺省参数 , 也可以选择 不传入 缺省参数 ,
- 如果不传入参数 则 使用默认值作为实际参数 ;
- 如果 传入参数 则 使用传入的值作为实际参数 ;
设置 的 缺省参数 , 在定义时 , 必须放在 形参列表的最后 ;
代码示例 :
代码语言:javascript复制"""
函数多返回值 代码示例
"""
def info(name, age=16):
print(f"{name} is {age} years old")
# 缺省参数 - 与关键字参数结合使用
# Jerry is 16 years old
info(name='Jerry')
# 缺省参数 - 与位置参数结合使用
# Trump is 16 years old
info('Trump')
# 缺省参数 - 传入缺省参数
# Joe is 21 years old
info('Joe', age=21)
执行结果 :
代码语言:javascript复制Jerry is 16 years old
Trump is 16 years old
Joe is 21 years old
2、不定长参数
" 不定长参数 " 又称为 可变参数 , 在 定义函数 时 , 不确定 调用时会传递多少个参数 , 就使用 不定长参数 ;
在 函数调用时 , 不定长参数 , 可以传入 若干 个参数 ;
不定长参数 又分为 两种类型 :
- 位置传递参数
- 关键字传递参数
通过位置传递的不定长参数
通过位置传递的不定长参数语法 :
代码语言:javascript复制def 函数名(*args)
# 函数体
*args 就是不定长参数 , 所有传入的参数 , 都会被 args 参数接收 , 这些参数都会被封装到一个 元组 tuple 中 ;
args 可以理解为 元组 数据容器 类型 ;
注意 : 通过位置传递的 不定长参数 前面有一个 * 符号 ;
代码示例 :
代码语言:javascript复制"""
函数多返回值 代码示例
"""
def info(*args):
print(args)
# 不定长参数 - 位置传递参数
# ('Tom',)
info('Tom')
# 不定长参数 - 位置传递参数
# ('Trump', 80)
info('Trump', 80)
执行结果 :
代码语言:javascript复制('Tom',)
('Trump', 80)
通过关键字传递的不定长参数
通过关键字传递的不定长参数语法 :
代码语言:javascript复制def 函数名(**args)
# 函数体
**args 就是通过关键字传递的不定长参数 , 所有传入的参数 , 都是由键值对组成的 , 这些键值对都会被封装到字典中 ;
args 可以理解为 字典 数据容器 类型 ;
注意 : 通过位置传递的 不定长参数 前面有两个 * 符号 ;
代码示例 :
代码语言:javascript复制"""
函数多返回值 代码示例
"""
def info(**args):
print(args)
# 不定长参数 - 关键字传递参数
# {'name': 'Tom', 'age': 18}
info(name='Tom', age=18)
执行结果 :
代码语言:javascript复制{'name': 'Tom', 'age': 18}