1. ホーム
  2. python

[解決済み] Pythonで、dict.pop(a,b)は何を意味するのでしょうか?

2023-01-22 01:27:25

質問

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 を引数1つで呼び出すと 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' キーを削除するので、2 番目の popdefault の引数が実際に返されます(なぜなら 'a' は現在では b.data ).