1. ホーム
  2. python

[解決済み] Pythonで空の辞書が危険なデフォルト値であるのはなぜですか?[重複しています]。

2022-04-21 09:07:55

質問

Python関数のオプション引数のデフォルト値としてdictを置いたところ、pylint(Sublimeパッケージを使用)が危険だと言ってきました。なぜそうなるのか、どなたか説明していただけませんか?また、より良い代替案として None のようなものでしょうか?

どのように解決するのですか?

危険なのは、その関数が引数を変更する場合だけです。 デフォルトの引数を変更した場合、それは次の呼び出しまで続くので、あなたの "empty" dict は最初の呼び出し以外の呼び出しで値を含むようになります。

そうです。 None が安全かつ一般的です。