dict.pop(key [,default])中“默认”参数的默认值是什么?

时间:2019-11-29 09:03:19

标签: python

似乎dict.pop()可以区分用户指定的“默认”和实际默认(省略)。
例如(实际结果):

$('#table tbody').on('click', 'td.tdCredits', function () {
  var table = $('#table').DataTable();
  var rowId = table.row(this).data()[0];
});
my_dict.pop('non-exist-key', None)

我希望dict.pop的“默认”参数具有一个默认值,否则我希望得到结果:

my_dict.pop('non-exist-key')
#Traceback (most recent call last):
#  File "<stdin>", line 1, in <module>
#KeyError: 'non-exist-key'

1 个答案:

答案 0 :(得分:0)

pop()方法从具有给定键的字典中删除并返回一个元素。

语法为 dictionary.pop(key [,默认])

pop()方法返回:

  1. 如果找到密钥-从字典中删除/弹出元素
  2. 如果未找到密钥-将值指定为第二个参数(默认值)
  3. 如果未找到密钥并且未指定默认参数-引发KeyError异常

    example_dict = {“ a”:1,“ b”:2}

我们在这里初始化了字典。

example_dict.pop("c", None)

此语句返回None,因为我们在第二个参数中指定了它。

example_dict.pop("c")

这将引发键盘错误。

def pop(self, *args):
    """
    Remove and return the value for a key.
    """
    have_default = len(args) == 2
    try:
        v = self[args[0]]
    except KeyError:
        if have_default:
            return args[1]
        raise
    else:
        del self[args[0]]
        return v

这是pop函数的纯python实现。