当前位置: 首页 > 面试题库 >

在Python中,dict.pop(a,b)是什么意思?

章德惠
2023-03-14
问题内容
class a(object):
    data={'a':'aaa','b':'bbb','c':'ccc'}
    def pop(self, key, *args):
            return self.data.pop(key, *args)#what is this mean.

b=a()
print b.pop('a',{'b':'bbb'})
print b.data

self.data.pop(key, *args) ←------为什么还有第二个论点?


问题答案:

pop字典的方法(例如self.data{'a':'aaa','b':'bbb','c':'ccc'}这里)有两个参数-
请参阅文档

第二个参数default是什么pop返回如果第一个参数,key是不存在的。(如果pop仅使用一个参数调用key,则在没有该键的情况下会引发异常)。

在您的示例print b.pop('a',{'b':'bbb'}),这是不相关的,因为它'a' 是中
的键b.data。但是,如果您重复该行…:

b=a()
print b.pop('a',{'b':'bbb'})
print b.pop('a',{'b':'bbb'})
print b.data

您会看到它有所不同:第一个pop删除了'a'键,因此第二个实际上返回popdefault参数(因为'a'现在不存在b.data)。



 类似资料:
  • 今天我深入研究了利斯科夫的替代原理和协方差/逆方差。 null 我对#1的理解 TypeVar('t',A,B)与TypeVar('t',bound=union[A,B])之间的差异 这个答案明确说明可以是: null MyPy不允许约束的TypeVar是协变的?定义具有约束但协变的键值类型的泛型dict 再次提到大小写,但不理解选项#2的含义,。 我试着玩了一下,但似乎弄不明白。有人能指出这是什

  • 问题内容: 我尝试了一些代码,使用XOR在Java中交换两个整数而不使用第三个变量。 这是我尝试的两个交换函数: 这段代码产生的输出是这样的: 我很好奇,为什么这样说: 与这个不同吗? 问题答案: 问题是评估的顺序: 参见JLS第15.26.2节 首先,对左操作数求值以产生一个变量。 如果该评估突然完成,则赋值表达式由于相同的原因而突然完成;右边的操作数不会被评估,并且不会发生赋值。 否则,将保存

  • 然而,今天我在处理一些代码时,意外地发现以下两个交换给出了不同的结果: 这让我难以置信。有人能给我解释一下这里发生了什么吗?

  • 我尝试了一些代码在Java中交换两个整数,而不使用第三个变量,即使用XOR。 以下是我尝试的两个交换函数: 该代码产生的输出如下: 我很想知道,为什么会有这样的说法: 和这个不一样?

  • 我不明白java中的(String a: b)是什么意思。希望有人能解释一下它的意思。谢谢。

  • 问题内容: 我看到了这个功能: 这是什么?有功能吗?为什么要放置函数定义? 问题答案: 在javascript中,您可以拥有和函数。 与…相同 你称这些为 您可以定义函数并立即将其调用为 的 part定义一个函数,并在其后立即调用刚刚定义的函数,并以10和20作为参数。 由于该函数没有名称,因此无法在以后的代码中使用。 您问题中的代码可能被 缩小了 ,并以类似的方式创建了一个函数并立即调用它。