Pythonでクラスを用いてリストに対する基本的な操作を行う

スポンサーリンク

Pythonでクラスを定義し、リストに対する基本的な操作を行ってみます。

■今回の環境(Python)

今回のPythonは、バージョン3.9.16を用いる。(なお、Google Colaboratory(Google Colab)を使用。)

■リストに対する基本的な操作するためのクラスを定義する

では、早速リストに対する基本的な操作するためのクラスを定義するために、コードを書いていきます。

■コード

class MyList:
    def __init__(self, lst):
        self.lst = lst
        
    def add(self, elem):
        self.lst.append(elem)
        
    def remove(self, elem):
        if elem in self.lst:
            self.lst.remove(elem)
            
    def display(self):
        print(self.lst)

lst = [1, 2, 3]
my_lst = MyList(lst)

my_lst.add(4)
my_lst.remove(2)

my_lst.display()

今回はMyListというオブジェクトを作成するためのテンプレート(設計図)であるクラスを定義します。このクラスは、定義後、クラス内にdef文を用いて’__init__’と記述し、コンストラクタを使います。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2の引数,パラメータとしてlstを設定します。なお、最初の「self(自己)」という引数,パラメータを介して、「lst」というクラスのインスタンス変数が初期化されます。この時にself(自己)に対してドット演算子( . )を用いて「lst」を指定します。

次にdef文を用いてaddというメソッドを定義します。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2の引数,パラメータとしてelemを設定します。このメソッドが呼び出された時の処理として、全メソッドからアクセス可能なインスタンス変数(self.lst)に対して(.)ドット演算子を用いてappend()を使います。括弧内には引数,パラメータとしてelemで受け取った要素を渡し、リストに要素を追加するという処理になります。

次にdef文を用いてremoveというメソッドを定義します。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2の引数,パラメータとしてelemを設定します。このメソッドが呼び出された時の処理として、if文を用いて全メソッドからアクセス可能なインスタンス変数(self.lst)内の要素にelemで受け取った要素がある場合に、全メソッドからアクセス可能なインスタンス変数(self.lst)に対して(.)ドット演算子を用いてremove()を使います。括弧内には引数,パラメータとしてelemで受け取った要素を渡し、リスト内の要素を削除するという処理になります。

次にdef文を用いてdisplayというメソッドを定義します。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。このメソッドが呼び出された時の処理として、全メソッドからアクセス可能なインスタンス変数(self.lst)の情報をprint()を用いて出力させるという処理になります。

その後、”[ ]”角括弧を用いてlstというリストを定義し、その中に要素(数値)を格納します。格納後、my_lstという変数を定義し、その中でMyList()を用います。これでインスタンス化を行います。インスタンス化によりオブジェクトが作成されたことで、クラス内にアクセスできるようになりました。この時に括弧内に第1の引数,パラメータとしてlstを渡します。

渡した後に、作成したオブジェクトであるmy_lstに対して(.)ドット演算子を用いてadd()を呼び出します。この時に括弧内に引数,パラメータとしてelemに渡す要素を渡します。今回は「4」。さらに、作成したオブジェクトであるmy_lstに対して(.)ドット演算子を用いてremove()を呼び出します。この時に括弧内に引数,パラメータとしてelemに渡す要素を渡します。今回は「2」。

最後に作成したオブジェクトであるmy_lstに対して(.)ドット演算子を用いてdisplay()を呼び出します。

■実行・検証

このコード(セル)を保存し、Google Colaboratory上で、セルを実行してみます。

実行してみると、リストに対する基本的な操作するためのクラスを定義し、インスタンス化を行い、定義したリスト内の要素を追加、削除させ、最終的に編集されたリストを出力させることができました。

コメント

タイトルとURLをコピーしました