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

原文地址:https://www.cnblogs.com/xusuns/p/8269163.html