在 Python 中,kw(通常写作 kwargs)是用于处理关键字参数(Keyword Arguments)的一种语法糖,它允许函数接收任意数量的命名参数,并将它们存储在一个字典中。
基本用法
def greet(kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
greet(name="Alice", age=30, city="Beijing")
输出:
name: Alice
age: 30
city: Beijing
这里:
kwargs接收所有未明确指定的关键字参数。kwargs是一个字典,键是参数名,值是参数值。
与位置参数结合使用
def greet(name, age, kwargs): print(f"Name: {name}, Age: {age}") for key, value in kwargs.items(): print(f"{key}: {value}") greet("Alice", 30, city="Beijing", job="Engineer")
输出:
Name: Alice, Age: 30
city: Beijing
job: Engineer
⚠️ 注意:
kwargs必须放在参数列表的最后,因为它会“捕获”所有剩余的关键字参数。
在类中用于继承(super())
class Parent:
def __init__(self, name, age):
self.name = name
self.age = age
class Child(Parent):
def __init__(self, name, age, grade, kwargs):
super().__init__(name, age)
self.grade = grade
# 可以进一步处理 kwargs
for key, value in kwargs.items():
setattr(self, key, value)
child = Child("Bob", 10, grade=4, hobby="reading")
print(child.__dict__)
输出:
{'name': 'Bob', 'age': 10, 'grade': 4, 'hobby': 'reading'}
解包字典作为关键字参数
你也可以用 将字典解包为关键字参数传递给函数:
def greet(name, age, city="Unknown"):
print(f"{name}, {age}, from {city}")
info = {"name": "Alice", "age": 30, "city": "Beijing"}
greet(info)
输出:
Alice, 30, from Beijing
常见命名约定
虽然 kw 是合法的,但 Python 社区普遍使用:
kwargs:表示 keyword argumentsargs:表示 positional arguments
这是 PEP 8 推荐的命名风格,有助于代码可读性。
| 语法 | 含义 | 类型 |
|---|---|---|
args |
接收任意数量的位置参数 | 元组 |
kwargs |
接收任意数量的关键字参数 | 字典 |
合理使用 kwargs 可以让函数更灵活、更具扩展性,尤其在装饰器、框架开发或需要动态传参的场景中非常有用。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/486970.html



