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

Python如何初始化包含空字典的类并实现键值对添加操作

问题解答

你代码的问题主要集中在类的方法定义、属性操作、测试逻辑三个部分,以下是修正方案:

错误原因汇总

  • 实例方法缺失self参数:Python中类的所有实例方法第一个参数必须为self,指向实例本身,你编写的add_key方法未声明该参数,访问实例属性时会报错找不到self
  • 字典属性操作错误:你要操作的是实例的dicts字典属性,不能直接对self(类实例本身)做下标赋值
  • 方法缩进错误:get_dicts方法缩进在add_key内部,属于内部函数,类实例无法直接访问
  • 测试逻辑错误:你直接声明了Python原生字典test_dic,原生字典当然没有你在Network类中自定义的get_dicts方法
  • 初始参数未绑定字典:你初始化时传入的key和value不会被Python自动识别为字典的元素,需要你手动写入到你定义的字典属性中

修正后的完整代码

class Network(object):
    def __init__(self, init_key=None, init_value=None):
        """初始化内置字典,支持传入初始键值对"""
        self.dicts = {}
        # 把初始化传入的键值对写入字典
        if init_key is not None:
            self.dicts[init_key] = init_value
        
    def add_key(self, key):
        """如果key不存在,向字典中添加key,值为空列表"""
        if key not in self.dicts:
            self.dicts[key] = []
       
    def get_dicts(self):
        """返回内置字典"""
        return self.dicts

# 测试代码:先实例化Network类
# 初始化时传入初始键值对
net = Network(init_key=13, init_value=[1,2,3])
# 调用add_key方法添加新key
net.add_key(14)
# 给已有的key赋值
net.dicts[14] = [4,5]
# 获取内置字典打印
print(net.get_dicts())

运行后输出:
{13: [1, 2, 3], 14: [4, 5]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:15:04