在一种情况下引发异常是 非常有意义的区别
。如果尝试从不存在的集合中删除某个元素会出现错误,则最好使用
set.remove()而不是
set.discard()。
这两种方法在实现上是相同的,只不过与
set_discard()该
set_remove()函数相比增加了以下几行:
if (rv == DISCARD_NOTFOUND) { set_key_error(key); return NULL;}
这引起了
KeyError。由于这是稍微更多的工作,
set.remove()是一个 teeniest 分数越慢;
在返回之前,您的CPU必须进行一项额外的测试。但是,如果您的算法 依赖于异常, 则额外的分支测试几乎无关紧要。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)