-
定义函数时,参数可以有两种:
一种是在参数表中写明参数名key的参数,固定了顺序和数量的固定参数:
def func(key1, key2, key3, …)
def func(key1, key2=value, …)一种是定义时还不知道会有多少参数传入的可变参数:
def func(*args): #不带key的多个参数
def func(**kwargs): #key=value形式的多个参数 -
示例:
固定参数:
def func_test(key1, key2, key3=23):
print("key1=%s, key2=%s, key3=%s" % (key1, key2, key3))
func_test('v1', 'v2')
func_test('a', 'b', 768)
func_test(key2='kk', key1='k')
可变参数:
#可随意传入0个或多个无名参数
def func_test2(*args):
for arg, i in zip(args, range(len(args))):
print('arg%d=%s' % (i, arg))
func_test2('a', 'b', 23, True)
#可随意传入0个或多个带名参数
def func_test3(**kwargs):
for key, value in kwargs.items():
print('%s=%s' % (key, value))
func_test3(name='Tom', sep='sofie', age=23)
-
调用函数的时候可以传进两种参数:
一种是没有名字的位置参数:
func(arg1, arg2, arg3, …)
会按照前后顺序对应到函数的参数传入一种是带key的关键字参数:
func(key1=arg1, key2=arg2, …)
由于指定了key可以不按照顺序对应注意:如果混用位置参数必须在前,关键字参数 必须在后