在 Python 中,*args 和 **kwargs 是用来传递可变数量参数的机制,允许你编写灵活的函数。
在 matplotlib 软件包中这两个参数出现的概率会比较大,因为画图需要的参数太多了,有些是通用的格式,因此很多参数就不写在函数的语法结构的定义中,而是写在官方文档中,或者是写在源码中。
一、使用 *args
代码例子:
def my_function_1(*args):
for arg in args:
print(arg)
def my_function_2(a, *args):
for arg in args:
print(arg)
my_function_1(1, 2, 3)
print()
my_function_2(1, 2, 3)
运行结果:
1
2
3
2
3
二、使用 **kwargs
代码例子:
def my_function_1(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
def my_function_2(name, **kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
my_function_1(name="Guan", year=1993)
print()
my_function_2(name="Guan", year=1993)
print()
my_function_2(year=1993, name="Guan")
运行结果:
name: Guan
year: 1993
year: 1993
year: 1993
三、同时使用 *args 和 **kwargs
代码例子:
def my_function_1(*args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
def my_function_2(a, *args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
def my_function_3(name, *args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
def my_function_4(a, name, *args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
my_function_1(1, 2, 3, name="Guan", year=1993)
print()
my_function_2(1, 2, 3, name="Guan", year=1993)
print()
my_function_3("Guan", 1, 2, 3, year=1993)
print()
my_function_4(1, "Guan", 2, 3, year=1993)
运行结果:
args: (1, 2, 3)
kwargs: {'name': 'Guan', 'year': 1993}
args: (2, 3)
kwargs: {'name': 'Guan', 'year': 1993}
args: (1, 2, 3)
kwargs: {'year': 1993}
args: (2, 3)
kwargs: {'year': 1993}
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】