一、位置参数
调用函数时根据函数定义的参数位置来传递参数。
def my_func(name, age):
print("我叫%s,今年%s"%(name,age))
# 两个参数的顺序必须一一对应,且少一个参数都不可以
my_func('Victor', 24)
二、关键词参数
用于函数调用,通过“键-值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。
def my_func(name, age):
print("我叫%s,今年%s"%(name,age))
# 两个参数的顺序必须一一对应,且少一个参数都不可以
# 位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序
my_func('Victor',age=25)
my_func(name='Victor',age=25)
my_func(age=26,name='Vicotr')
三、默认参数
用于定义函数时为参数提供默认值,调用函数时可传可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)
def my_func(name, sex=2):
# 正确的默认参数定义方式--> 位置参数在前,默认参数在后
sex_dict = {1: u'先生', 2: u'女士'}
print('hello %s %s, welcome to python world!' %(name, sex_dict.get(sex, u'先生')))
my_func('Alice')
# 调用时不传sex的值,则使用默认值2
my_func('Victor', 1)
# 调用时传入sex的值,并指定为2
四、参数组(可变参数)
要定义出这个函数,我们必须确定输入的参数。由于参数个数不确定,我们首先想到可以把a,b,c....作为一个list或者tuple传进来,如果利用可变参数,调用函数的方式可以更加简化
def test(*args):
'''
*args 中 * 代表接收参数个数不受限制 args可自定义
我们传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组
'''
for i in args :
# 如果不循环遍历会以元组形式输出(1, 2, 3, 4, 5)
print(i)
test(1, 2, 3, 4, 5)