函数的参数
函数的参数
位置参数
调用函数时根据函数定义的参数位置来传递参数
def user_info(name,age, gender):
print(f'您的名字是{name}, 年龄是{age}, 性别是{gender}')
uer_uinfo('Tom', 20, '男')
传参数时:个数和顺序要与形参的个数与顺序一致
关键字参数
函数调用,通过”键=值“形式加以指定,可以让函数更加清晰、容易使用,同时也清除了参数的顺序要求
def user_info(name,age, gender):
print(f'您的名字是{name}, 年龄是{age}, 性别是{gender}')
uer_uinfo('Tom', 20, '男') # 位置参数调用示例
user_info('小明', gender='男', age=16) # 关键字参数调用示例 关键字参数 顺序无关
user_info('Rose', age=20, gender='女') # 关键字参数调用示例
注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面。关键字参数之间没有先后顺序
缺省参数
也叫默认参数。
def user_info(name,age, gender='男'): #默认值为男
print(f'您的名字是{name}, 年龄是{age}, 性别是{gender}')
user_info('Tom', 20) # 默认男
user_info('Rose', 18, '女')
不定长参数
又叫可变参数。用于不确定调用的时候会传递多个参数(不传参也可以)的场景。此时可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递
包裹位置传递
def user_info(*args):
print(args)
user_info('TOM')
user_info('TOM', 18)
注意:传递的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是包裹位置传递
包裹关键字传递
def user_info(**kwargs):
print(kwargs)
user_info(name='TOM', age=18, id=110) # 返回一个字典
无论是包裹位置传递还是包裹关键字传递,就是一个组包的过程。