函数的参数

函数的参数

位置参数

调用函数时根据函数定义的参数位置来传递参数

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) # 返回一个字典

无论是包裹位置传递还是包裹关键字传递,就是一个组包的过程。