python(5)kwargs的用法

什么是 kwargs?

kwargs 是 python 函数中关键字参数的缩写,它是一个字典,用于存储在函数调用时传递的额外关键字参数。

为了使用 kwargs,您需要在函数定义中指定一个带有两个星号的参数,如下所示:

def my_function(**kwargs):
    for key, value in kwargs.items():
        print(key + " = " + value)

在上面的示例中,我们定义了一个名为 my_function 的函数,该函数带有一个名为 kwargs 的参数。该函数通过迭代 kwargs 字典中的键值对来打印每个参数的名称和值。

现在,让我们看看如何调用带有 kwargs 参数的函数。为了调用该函数,您可以像下面这样使用参数名称和值来传递参数:

my_function(name="Alice", age="25", gender="female")

在上面的示例中,我们通过关键字参数的形式传递了三个参数:name、age 和 gender。这些参数将被打包到一个名为 kwargs 的字典中,并作为参数传递给 my_function 函数。该函数将迭代 kwargs 字典并打印每个参数的名称和值。

kwargs 在 Python 中的使用场景非常广泛。例如,当您不知道将有多少个参数要传递给函数时,kwargs 可以非常有用。在这种情况下,您可以使用 kwargs 来处理所有参数,而不必定义大量的位置参数。此外,kwargs 还可以用于接受任意数量的关键字参数,这对于编写可扩展的代码非常有用。

1、kwargs 与位置参数一起使用

例如,您可以将位置参数和关键字参数混合使用来调用带有 kwargs 参数的函数,如下所示:

def my_function(name, age, **kwargs):
    print("Name:", name)
    print("Age:", age)
    for key, value in kwargs.items():
        print(key + " = " + value)

my_function("Alice", 25, gender="female", city="New York")

在上面的示例中,我们定义了一个带有两个位置参数 name 和 age,以及一个 kwargs 参数的函数。我们还将 gender 和 city 作为关键字参数传递给该函数。

在函数定义中,位置参数必须出现在 kwargs 参数之前。在调用函数时,位置参数必须按照定义的顺序传递,而关键字参数可以按照任意顺序传递。

输出结果:

2、kwargs 与默认参数一起使用

默认参数是在函数定义中指定的具有默认值的参数,如果没有传递该参数,则使用默认值。例如:

def my_function(name, age=30, **kwargs):
    print("Name:", name)
    print("Age:", age)
    for key, value in kwargs.items():
        print(key + " = " + value)

my_function("Alice", gender="female", city="New York")

在上面的示例中,我们将 age 参数设置为默认值 30。如果没有传递 age 参数,则使用默认值。如果传递了 age 参数,则该值将覆盖默认值。

3、kwargs 还可以与其他参数类型一起使用

例如 *args,它允许接受任意数量的位置参数。例如:

def my_function(*args, **kwargs):
    print("Positional arguments:")
    for arg in args:
        print(arg)
    print("Keyword arguments:")
    for key, value in kwargs.items():
        print(key + " = " + value)

my_function("Alice", 25, gender="female", city="New York")

在上面的示例中,我们定义了一个带有 *args 和 kwargs 参数的函数。该函数可以接受任意数量的位置参数和关键字参数。在函数定义中,*args 参数必须出现在 kwargs 参数之前。

在调用函数时,所有位置参数都将被打包到一个元组中,并作为 args 参数传递给函数。所有关键字参数将被打包到一个字典中,并作为 kwargs 参数传递给函数。

输出结果:

总之,kwargs 是 Python 中非常有用的参数类型之一。它提供了一种灵活的方式来处理任意数量和类型的参数,并且可以与其他参数类型一起使用,以提供更多的功能和灵活性。

好处:

  • 允许函数接受任意数量的关键字参数。
  • 提供灵活的方式向函数传递数据。
  • 可以轻松扩展函数以处理新参数。
# kwargs,不定长参数使用
#面积计算
import math

def calcucate_area(shape,**kwargs):
    if(shape == 'circle'):
        area = math.pi * kwargs.get("width") ** 2
    elif shape == "rectangle":
        area = kwargs.get("width") * kwargs.get("heitht")
    elif shape == "square":
        area = kwargs.get("width") ** 2
    else:
        area = kwargs.get("width")*5
    return area

b = calcucate_area("circle",width=2)
print("circel:",b)

a = calcucate_area("square",width=5)
print("square:",a)

c = calcucate_area("rectangle",width=2,heitht=4)
print("rectangle:",c)

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙漏无语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值