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) ←------为什么还有第二个论点?
self.data.pop(key, *args)
pop字典的方法(例如self.data,{'a':'aaa','b':'bbb','c':'ccc'}这里)有两个参数- 请参阅文档
pop
self.data
{'a':'aaa','b':'bbb','c':'ccc'}
第二个参数default是什么pop返回如果第一个参数,key是不存在的。(如果pop仅使用一个参数调用key,则在没有该键的情况下会引发异常)。
default
key
在您的示例中print b.pop('a',{'b':'bbb'}),这是不相关的,因为它'a' 是中 的键b.data。但是,如果您重复该行…:
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'键,因此第二个实际上返回pop了default参数(因为'a'现在不存在b.data)。