如何使用 *args和** kwargs in python
#网络开发人员 #编程 #python #django

介绍

python,一种以简单易懂的方式闻名的编程语言。之所以如此流行的原因之一是它使用 *args和** kwargs以非常简单且动态的方式处理功能中的参数。在本文中,您将学习如何在编写代码时使用这些内容来处理函数中的参数。

了解功能中的参数

在编程中,一个函数是可以重复使用的代码块,可以多次调用。虽然参数是您在函数中包含的值,该函数使函数在调用时执行某些操作。

def hello(greetings)
    return greetings

output = hello(Welcome)
print(output)
# It will print out: Welcome

在这种情况下,您好是功能,问候是参数。

功能中的参数类型

  1. 位置参数
  2. 关键字参数

位置参数是根据函数定义的顺序通过的参数。

def hello(greetings, name)
    return greetings, name

output = hello(Welcome, Faith)
print(output)
# It will print out: Welcome, Faith

关键字参数通过其参数名称标识。

def hello(greetings='Welcome', name='Faith')
    return greetings, name

output = hello()
print(output)
# It will print out: Welcome, Faith

为什么使用Args和Kwargs

args和kwargs使用时使用的参数数可能会有所不同,或者您不知道用户可以输入多少参数。

*args

args Mean 参数。当您使用 args时,该函数可以接受多个值。 ```(asterik)签名在为 *args的名称之前。当您通过 *ARG作为参数时,它被视为元组,其中包含调用该函数时通过的所有位置参数。当您不确定功能可能会收到的参数数量时,此功能特别有用。
这是一个示例:

def calculate_sum(*args):
    total = 0
    for num in args:
        total += num
    return total

result = calculate_sum(5, 10, 15, 20)
print(result)  # Output: 50

注意:您可以使用其他名称而不是args
例如

def calculate_sum(*nums):
    total = 0
    for num in nums:
        total += num
    return total

result = calculate_sum(5, 10, 15, 20)
print(result)  # Output: 50

它仍然会给出相同的结果。

** lumgs

kwargs代表“关键字参数”。在这里,我们使用Double asterik` `来识别关键字参数。它允许函数接受任意数量的关键字参数,该参数在函数内形成字典。这个字典的结构使您可以使用其各自的键访问值。

这是一个示例:

def display_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

display_info(name="Alice", age=30, profession="Engineer")
# Output:
# name: Alice
# age: 30
# profession: Engineer

注意:您可以使用其他名称而不是夸尔格。

def display_info(**data):
    for key, value in data.items():
        print(f"{key}: {value}")

display_info(name="Alice", age=30, profession="Engineer")
# Output:
# name: Alice
# age: 30
# profession: Engineer

组合 *args和** kwargs

既然您已经了解了Args和Kwargs,则可以在代码中使用它。如果您需要创建同时接受不同位置参数和关键字参数的函数怎么办?

在这种情况下,可以通过在同一功能中使用 *args和** kwargs来实现。您必须了解它必须按正确的顺序。

这是您参数的正确顺序:
Standard arguments ---> *args ---> **kwargs

这是它的表示。

def combined_argument(a, b, *args, **kwargs):
    pass

不是

def combined_argument(a, b, **kwargs, *args):
    pass


def combined_argument(*args, **kwargs, a, b):
    pass

最佳实践和提示:

  • 使用描述性变量名称使您的代码可读。
  • 正确记录您的功能,以指示该功能中的 *args和** kwargs是如何使用的。
  • 谨慎不要使您的功能接口过度复杂化;明智地使用这些功能。
  • 使用 *args和** kwargs一起,在函数签名中保持明确的参数顺序。

结论:

现在您可以继续前进,使用 *args和** kwargs,然后在项目中升级函数参数处理。