Python中函数参数 *args 和 **kwargs
-
普通参数,即在调用函数时必须按照准确的顺序来进行参数传递。
-
默认参数,即参数含有默认值,在调用函数时可以进行参数传递,若没有进行参数传递则使用默认值,要注意,默认参数必须在普通参数的右侧(否则解释器无法解析)。
-
元组参数,即 *args,参数格式化存储在一个元组中,长度没有限制,必须位于普通参数和默认参数之后。
-
字典参数,即 **kwargs,参数格式化存储在一个字典中,必须位于参数列表的最后面。
普通参数
def fun(name): print('Hello', name) fun('World')#Hello World
默认参数
def fun(name, age=1): print('Hello', name, age, '年') fun('World') # Hello World 1 年
元组参数
def fun(name, age=1, *args): print('Hello', name, age, '年') # Hello World 1 年 print(args) # ('I', 'love', 'it') for i in args: print(i) fun('World', 1, 'I', 'love', 'it') I love it
字典参数,要在最后
def fun(name, age=1, *args, **kwargs):
print('Hello', name, age, '年') # Hello World 1 年
print(args) # ('I', 'love', 'it')
for i in args:
print(i)
print(kwargs) # {'my': 'jack', 'like': 'girl'}
for m in kwargs:
print(m, ':', kwargs[m])
fun('World', 1, 'I', 'love', 'it', my='jack', like='girl')
Hello World 1 年
('I', 'love', 'it')
I
love
it
{'my': 'jack', 'like': 'girl'}
my : jack
like : girl