语言, Python专题

Python中的*args参数和**kwargs参数

在 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}
44 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code