エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Pythonでデフォルト引数を使う際に気を付けること - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Pythonでデフォルト引数を使う際に気を付けること - Qiita
はじめに 使用歴が浅いPythonなのですが、 デフォルト引数の仕様を知らずにちょっとハマってしまいまし... はじめに 使用歴が浅いPythonなのですが、 デフォルト引数の仕様を知らずにちょっとハマってしまいました。 デフォルト引数で指定した値はキャッシュされる 実は、デフォルト引数で指定した値はキャッシュされるため、これを知らずにデフォルト引数にリストや辞書のようなミュータブルデータを使うと意図しない動作になってしまう。 # aがデフォルト引数 def hoge(a=[]): a.append('a') print(a) hoge() # ['a'] hoge() # ['a', 'a'] ※['a']ではない 上記を実行した場合、2回目のhoge()呼び出しでa = ['a']ではなく['a', 'a']となってしまう。 これは、1回目の呼び出し後の['a']が使い回されているため。 解決策 デフォルト引数に、Noneや数値や文字列、タプルなどのイミュータブルな値を使うようにする。 どうして