python中两个星号什么意思
在 Python 中,两个星号 **
有以下几种常见用法:
1. 幂运算(Exponentiation)
• 用于计算数的幂次方。
• 示例:
result = 2 ** 3 # 2 的 3 次方,结果为 8
2. 函数定义中的关键字参数收集
• 在函数定义时,**kwargs
表示收集所有未匹配的关键字参数(以字典形式存储)。
• 示例:
def func(a, **kwargs):
print(a) # 输出 1
print(kwargs) # 输出 {'b': 2, 'c': 3}
func(a=1, b=2, c=3)
3. 函数调用时的字典解包
• 在调用函数时,**dict
表示将字典的键值对解包为关键字参数传递给函数。
• 字典的键必须与函数参数名匹配。
• 示例:
def func(a, b):
print(a + b) # 输出 3
params = {'a': 1, 'b': 2}
func(**params) # 等价于 func(a=1, b=2)
4. 字典合并(Python 3.5+)
• 在字典字面量中使用 **
可以解包多个字典,合并成一个新字典。
• 示例:
dict1 = {'a': 1}
dict2 = {'b': 2}
merged = {**dict1, **dict2} # 结果:{'a': 1, 'b': 2}
总结
场景 | 作用 |
---|---|
a ** b | 幂运算(如 2**3=8 ) |
def func(**kwargs) | 收集关键字参数为字典 |
func(**dict) | 解包字典为关键字参数 |
{**d1, **d2} | 合并字典(Python 3.5+) |
注意:单个星号 *
的用法(如解包列表、收集位置参数)与 **
不同,需区分。