pin_drop当前位置:知识文库 ❯ 图文

Python函数可变参数 - **kwargs关键字

一、概述

**kwargs允许函数接收任意数量的关键字参数,这些参数会被收集为一个字典。当不确定调用时会传递哪些关键字参数时,**kwargs非常有用。


二、语法

代码示例

def func(**kwargs):
    pass

三、基本用法

代码示例

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="Alice", age=25, city="Beijing")

输出:

代码示例

name: Alice
age: 25
city: Beijing

四、kwargs是字典

代码示例

def show_kwargs(**kwargs):
    print(type(kwargs))
    print(kwargs)

show_kwargs(a=1, b=2, c=3)

输出:

代码示例

<class 'dict'>
{'a': 1, 'b': 2, 'c': 3}

五、与*args混用

代码示例

def func(*args, **kwargs):
    print(f"args: {args}")
    print(f"kwargs: {kwargs}")

func(1, 2, 3, name="Alice", age=25)

输出:

代码示例

args: (1, 2, 3)
kwargs: {'name': 'Alice', 'age': 25}

六、注意事项

注意:**kwargs收集多余的关键字参数为字典。kwargs是约定名称,可以用其他名字。参数顺序:普通参数→*args→**kwargs。只能有一个**kwargs。


七、小结

  • **kwargs收集多余的关键字参数为字典

  • kwargs是约定名称,可以用其他名字

  • 参数顺序:普通参数 → *args → **kwargs

  • 唯一性:只能有一个**kwargs


八、练习题

练习1

编写函数 create_html_tag(tag, **attrs) 生成HTML标签

练习2

编写函数 log_message(level, **context) 记录日志

常见问题

**kwargs 收集什么类型的参数?

**kwargs 收集所有多余的关键字参数,将它们存储为一个字典对象。

kwargs 这个名字必须固定吗?

不是,kwargs 只是约定俗成的名称,可以使用其他名字,但建议遵循这个约定以提高代码可读性。

可以同时使用 *args 和 **kwargs 吗?

可以,参数顺序必须是:普通参数 → *args → **kwargs。*args 接收位置参数,**kwargs 接收关键字参数。

小贴士

**kwargs 常用于构建灵活的 API 接口,例如数据库查询构建器、配置传递等场景。使用 kwargs.get('key') 可以安全地获取参数值,如果键不存在则返回 None。

标签: **kwargs 关键字参数 可变参数 参数字典 Python基础 函数参数

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python可变参数*args详解* 下一篇: Python函数返回值 - return语句

poll相关推荐