一尘不染

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

python

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) ←------为什么还有第二个论点?


阅读 416

收藏
2021-01-20

共1个答案

一尘不染

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)。

2021-01-20