在Python的使用中,我们经常会遇到这样的函数定义:
def my_func(x, y, *args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key}: {value}")
你是否好奇,这里的args
和kwargs
分别是什么含义呢?
args
顾名思义,是arguments
的简写,那也很容易想到kwargs
是keyword arguments
的简写了。也就是,前者是普通参数,后者是键值对参数的含义。
*args
和**kwargs
是python函数定义中,两个特殊的符号,用以向函数中传递可变数量的参数,可以在事先不需要知道有多少参数,也不需要显式命名他们的情况下,向函数内部传递任意数量的参数。
*args
用以向一个函数传递可变数量的非键值对参数,这些参数被打包成一个tuple,并传递到函数内部。**kwargs
用以向一个函数传递可变数量的键值对参数,这些参数被打包成一个dict,并传递到函数内部。示例如下:
def my_func(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key}: {value}")
my_func(1, 2, 3, name="John", age=30, city="New York")
# Output: 1 2 3 name: John age: 30 city: New York
标签:函数,Python,kwargs,args,参数,arg,print
From: https://www.cnblogs.com/shuezhang/p/17302264.html