You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用**kwargs为Python类实例的内部字典添加可选键值对

完全可以通过**kwargs实现该需求,不需要额外编写if/else判断逻辑,具体实现方案如下:

实现方案

方法1:初始化时直接合并字典(推荐)

**kwargs本身就是存储所有额外传入键值对的字典,直接将其解包到info字典的定义中即可,该写法兼容所有Python3版本:

class Book:
    def __init__(self, title, author, **kwargs):
        self.info = {
            'title': title,
            'author': author,
            **kwargs
        }

如果是Python 3.9及以上版本,也可以用字典并集运算符简化写法:

self.info = {'title': title, 'author': author} | kwargs

方法2:调用字典update方法

如果需要先初始化基础info字典再追加可选参数,直接调用字典的update()方法传入kwargs即可,和方法1效果完全一致:

class Book:
    def __init__(self, title, author, **kwargs):
        self.info = {
            'title': title,
            'author': author,
        }
        self.info.update(kwargs)
使用示例
# 传入可选参数year、publisher
book1 = Book("三体", "刘慈欣", year="2008", publisher="重庆出版社")
print(book1.info)
# 输出:{'title': '三体', 'author': '刘慈欣', 'year': '2008', 'publisher': '重庆出版社'}
注意事项
  • 如果需要避免用户传入的可选参数覆盖title、author两个必填字段,只需要调整字段写入顺序,把必填项放在kwargs解包之后即可:
# 即使用户传入了title参数到kwargs中,也会被强制覆盖为传入的必填title值
self.info = {**kwargs, 'title': title, 'author': author}

内容的提问来源于stack exchange,提问作者willowgavette

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:24:03