龙空技术网

Python中星号(*)的两种主要用法:*args 和 **kwargs

AI机器与视觉 2610

前言:

眼前同学们对“python2x3x”大致比较珍视,小伙伴们都需要剖析一些“python2x3x”的相关内容。那么小编同时在网上收集了一些关于“python2x3x””的相关内容,希望小伙伴们能喜欢,小伙伴们快快来了解一下吧!

1、当放在函数参数前面时,单星号* 表示 "所有位置参数",也就是说,它可以接收任意数量的位置参数。比如:

def func(*args):	for arg in args:		print(arg)func(1, 2, 3, 4) # 输出:1 2 3 4

例如 Tensor(*sizes) ,其中*sizes表示任意数量的尺寸参数,意味着可以创建任意维度的张量。

x = torch.Tensor(2, 3) # 创建一个2x3的张量y = torch.Tensor(2, 3, 4) # 创建一个2x3x4的张量z = torch.Tensor(2, 3, 4, 5) # 创建一个2x3x4x5的张量

2、双星号**kwargs,它用于处理传递给函数的关键字参数,也就是以键值对形式提供的参数。当**放在函数参数前面时,它表示"所有关键字参数"。这意味着它会接收一个字典,其中键是参数的名称,值是对应的参数值。

def func(**kwargs):	for key, value in kwargs.items():		print(f"{key}: {value}")func(name="John", age=25) # 输出:name: John age: 25

在这个例子中,函数func接收了两个关键字参数(name和age),并将它们打印出来。注意,这里的参数是以键值对的形式提供的,而不是位置参数。总的来说,*args用于处理位置参数,而**kwargs用于处理关键字参数。

标签: #python2x3x