欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

python 变量前面加个 * (+加个星号)

在Python中,当你在函数定义或函数调用中看到变量前面带有*时,它通常有两种不同的含义:

  1. 在函数定义中:它表示该函数可以接受任意数量的位置参数,并将它们收集到一个元组中。这被称为“可变位置参数”或“非关键字可变参数”。

python复制代码

def func(*args):

for arg in args:

print(arg)



func(1, 2, 3, 4)  # 输出: 1 2 3 4

在这个例子中,*args会捕获所有传递给func的位置参数,并将它们存储在一个名为args的元组中。
2. 在函数调用中:它表示你正在将一个元组或列表的元素“解包”为位置参数。这被称为“参数解包”。

python复制代码

def func(a, b, c):

print(a, b, c)



args = (1, 2, 3)

func(*args)  # 输出: 1 2 3

在这个例子中,*args将元组args的元素解包为位置参数,并将它们传递给func函数。

此外,还有一个与*类似的符号**,它用于处理关键字参数:

  • 在函数定义中:它表示该函数可以接受任意数量的关键字参数,并将它们收集到一个字典中。这被称为“可变关键字参数”。

python复制代码

def func(**kwargs):

for key, value in kwargs.items():

print(f"{key} = {value}")



func(a=1, b=2, c=3)  # 输出: a = 1, b = 2, c = 3
  • 在函数调用中:它表示你正在将一个字典的键值对“解包”为关键字参数。

python复制代码

def func(a, b, c):

print(a, b, c)



kwargs = {'a': 1, 'b': 2, 'c': 3}

func(**kwargs)  # 输出: 1 2 3

希望这可以帮助你理解Python中***的用法!


普通分类: