Python 中 * 和 ** 的用途
本文解释了 Python 中 *
和 **
的用途。
在 Python 中,我们使用单星号 (*
) 和双星号 (**
) 来表示可变数量的参数。
我们可以通过以下任一方式在 Python 函数中传递任意数量的参数。
- 位置参数(
*
) - 关键字参数(
**
)
Python 中*
的定义
在 Python 中使用符号 *
允许函数的位置参数/参数数量可变。
请按照以下示例进行操作。
def function_singleasterix(*someargs):
for i in someargs:
print(i)
现在,带有 list
或 tuple
的驱动程序代码如下。
listdata=[ "Alex","Tom","John","Alice"]
function_singleasterix(listdata)
输出:
['Alex', 'Tom', 'John', 'Alice']
如果你不希望用户知道参数的名称,请使用仅位置参数。
例如,建议在 API 中使用仅位置变量——如果参数名称被修改,这可以避免在 API 发生任何变化时损坏。
Python 中**
的定义
在 Python 中使用符号 **
允许对函数使用可变数量的关键字参数/参数。请注意,后面的参数必须是映射(字典键值对)项,而不是元组或列表。
按照下面的示例代码。
def function_doubleasterix(**keywordargs):
print("The keys in the kwargs dicionary are -", keywordargs.keys())
print("The values in the kwargs dicionary are -", keywordargs.values())
print("--The key value assignment in the 'keywordargs' dictionary are as follows--")
for key, value in keywordargs.items():
print ("%s == %s" %(key, value))
在上面的示例中,keywordargs
与下面的程序中的字典相关联。
function_doubleasterix(SNo001 ='Alex', SNo002 ='Tom')
输出:
The keys in the 'keywordargs' dicionary are - dict_keys(['SNo001', 'SNo002'])
The values in the 'keywordargs' dicionary are - dict_values(['Alex', 'Tom'])
--The key value assignment in the 'keywordargs' dictionary are as follows--
SNo001 == Alex
SNo002 == Tom
在上面的示例中,**keywordargs
提供关键字参数作为字典键值对。
*
和 **
在 Python 函数调用中的使用
符号*
和**
也用于函数调用。使用它们将可变数量的参数传递给使用以下任一方法的函数。
- 一个列表 –
*
- 一个元组 –
*
- 一本字典 –
**
以下是你可以遵循的几个示例。
使用变量 list
作为输入调用函数。使用*
如下
varlist = ["Tom","John","Alice"]
functiondef(*varlist)
使用变量 dictionary
作为输入调用函数。使用**
如下
vardict = {'a':"Tom",'b':"John",'c':"Alice"}
functiondef(**vardict)
使用变量 tuple
作为输入调用函数。使用*
如下
vartuple = ("Tom","John","Alice")
functiondef(*vartuple)
以上所有情况的输出是:
SNo1=Tom
SNo2=John
SNo3=Alice
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。