Python で del キーワードを使用する

Muhammad Maisam Abbas 2023年1月30日
  1. Python の del ステートメントで変数を削除する
  2. Python で del 文を使ってリストを削除する
  3. Python の del 文で辞書要素を削除する
  4. Python の del ステートメントでユーザ定義クラスオブジェクトを削除する
Python で del キーワードを使用する

このチュートリアルでは、Python の delの使い方について説明します。

del 文はオブジェクトを削除するために使われます。Python のオブジェクト指向の性質上、データを保持できるものはすべてオブジェクトです。そのため、del 文は変数やクラスオブジェクト、リストなどを削除できます。

del 文の構文は以下の通りです。

del object_name

これはローカルとグローバルの両方の名前空間から object_name を削除することで動作します。

Python の del ステートメントで変数を削除する

variable = "This is a variable"
print(variable)
del variable
print(variable)

出力:

This is a variable
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-f9a4f1b9bb9c> in <module>()
      2 print(variable)
      3 del variable
----> 4 print(variable)

NameError: name 'variable' is not defined

上のプログラムは variable の値を表示した後に NameError を返しました。これは del 文を使った後に variable が名前空間から削除されたためです。

Python で del 文を使ってリストを削除する

List = ["One", "Two", "Three"]
print(List)
del List
print(List)

出力:

['One', 'Two', 'Three']
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-edd546e00a8e> in <module>()
      2 print(List)
      3 del List
----> 4 print(List)

NameError: name 'List' is not defined

前の例と同様に、名前 List が名前空間から削除されました。

また、del 文を使ってリストをスライスすることもできます。

List = ["One", "Two", "Three"]
print(List)
del List[1]
print(List)

出力:

['One', 'Two', 'Three']
['One', 'Three']

インデックスが 1 の list 要素を削除します。

Python の del 文で辞書要素を削除する

dictionary = {"key1": "value1", "key2": "value2", "key3": "value3"}
print(dictionary)
del dictionary["key2"]
print(dictionary)

出力:

{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
{'key1': 'value1', 'key3': 'value3'}

Python の del ステートメントでユーザ定義クラスオブジェクトを削除する

class MyClass:
    def myFunction(self):
        print("Hello")


class1 = MyClass()
class1.myFunction()
del class1
class1.myFunction()

出力:

Hello
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-23-26401eda690e> in <module>()
      6 class1.myFunction()
      7 del class1
----> 8 class1.myFunction()

NameError: name 'class1' is not defined
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Python Keyword