del バインディングの削除
最終更新:2026-09-22
del バインディングの削除
del は変数名、属性、またはコンテナ内の要素を削除する(参照を解放する)。
| カテゴリ | キーワード/文 |
|---|---|
| 種類 | キーワード/文 |
| Python バージョン | all |
📝 構文
del target [, target]*
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
[2, 3]
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Q`del x` と `x = None` の違いは何ですか?
A`del x` は名前の束縛を削除し、以降に `x` にアクセスすると `NameError` になります。`x = None` は `x` を `None` に向けさせるだけで、名前は残ります。`del lst[i]` はリスト要素を削除し、リストの長さが変わります。
Q`del` でリストのスライスを削除できますか?
Aできます。`del lst[1:3]` は要素の一区間を削除します。`del lst[:]` はリスト全体を空にしますが、同じリストオブジェクトを保持します(新しいリストを代入するのとは異なります)。
Q`del` はすぐにメモリを解放しますか?
Aそうとは限りません。`del` は参照を1つ解放するだけで、オブジェクトは参照カウントがゼロになり(循環参照がなければ)初めて回収されます。詳細なタイミングはインタプリタが決定します。