在Python中,双星号(**
)在不同的上下文中具有不同的用途,但最常见的是在两个主要的场景中:
- 字典解包(Unpacking Dictionaries):在函数调用中,你可以使用
**
来解包字典,将其键值对作为命名参数传递给函数。
def greet(name, age):
print(f"Hello, {name}. You are {age} years old.")
person = {
"name": "Alice", "age": 30}
greet(**person) # 输出: Hello, Alice. You are 30 years old.
在这个例子中,**person
将字典person
解包为命名参数,并将它们传递给greet
函数。
- 字典字面量中的关键字参数(Keyword Arguments in Dictionary Literals):在创建字典时,虽然这不是
**
的直接用途,但它是与命名参数相关的。你可以使用关键字参数(即带有名称的参数)来定义字典的键值对。
person = {
"name": "Alice",
"age": 30,
**{
"city": "New York"}, # 这是一个使用**来合并字典的例子
}
print(person) # 输出: {'name': 'Alice', 'age': 30, 'city': 'New York'}
在这个例子中,**{"city": "New York"}
实际上是在创建字典时合并了一个小的字典。但是请注意,这通常不是最佳实践,因为你可以直接包含所有的键值对在原始字典字面量中。这里只是为了演示目的。
此外,**
也可以用于函数定义中的默认参数,但这种情况相对少见。
希望这可以帮助你理解Python中**
的用途!