在字典中插入会导致键错误吗?

2024-04-19 12:21:37 发布

您现在位置:Python中文网/ 问答频道 /正文

这段代码会产生KeyError吗?我是python新手,只想澄清一下,因为我检查了insertion不能导致keyrerror异常。

def add(self, name, company):
    try:
        self.identity[self.id] = { 'name': name,
                                   'company': company }
        return self.identity
    except KeyError:
        raise NameNotAdded

在这里,identity是一个字典,id是在其他地方初始化的int,NameNotAdded是一个自定义异常。


Tags: 代码nameselfaddidreturndefcompany
2条回答

插入永远不会引发KeyError,但是如果您提供了一个错误的键,它可以引发TypeError,这通常意味着您试图使用可变对象作为键。Python整数是不可变的,因此它们不会引发TypeError。在

请注意,如果您尝试向dict添加太多的项目,您将得到一个MemoryError,因为缺少可用的RAM,或者OverflowError,因为您试图超过集合的最大大小(可以从sys.maxsize读取)。但没必要费心去抓那些。:)

在这种情况下,没有任何理由引发关于^{}的异常。在

KeyError通常表示密钥不存在。在你的情况下,你只需在字典中添加一个新的键。在

相关问题 更多 >