Python中的args和kwargs
在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
关注我的公众号 不定期推送资讯,接受私信许愿
作者:iSherryZhang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。