介绍
python,一种以简单易懂的方式闻名的编程语言。之所以如此流行的原因之一是它使用 *args和** kwargs以非常简单且动态的方式处理功能中的参数。在本文中,您将学习如何在编写代码时使用这些内容来处理函数中的参数。
了解功能中的参数
在编程中,一个函数是可以重复使用的代码块,可以多次调用。虽然参数是您在函数中包含的值,该函数使函数在调用时执行某些操作。
def hello(greetings)
return greetings
output = hello(Welcome)
print(output)
# It will print out: Welcome
在这种情况下,您好是功能,问候是参数。
功能中的参数类型
- 位置参数
- 关键字参数
位置参数是根据函数定义的顺序通过的参数。
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,然后在项目中升级函数参数处理。