Pythonでリスト内の偶数の合計を返すクラスを実装

スポンサーリンク

Pythonでリスト内の偶数の合計を返すクラスを実装してみます。

■今回の環境(Python)

Google Colaboratory(Google Colab),記事作成時点ではPython 3.9.16が用いられる。

■リスト内の偶数の合計を返すクラスの実装

では、早速リスト内の偶数の合計を返すクラスの実装をするために、コードを書いていきます。

■コード

class MyEvenSum:
    def __init__(self, lst):
        self.lst = lst

    def get_even_sum(self):
        total = 0
        for num in self.lst:
            if num % 2 == 0:
                total += num
        return total

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_obj = MyEvenSum(my_list)        
print(my_obj.get_even_sum())

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

メソッドを定義後、def文を用いてget_even_sum()というメソッドを定義します。括弧内には、第1の引数,パラメータとしてselfを設定します。selfはインスタンス自身を指す特別な変数でこれでインスタンス変数にアクセスすることができます。このメソッドが呼び出された時の処理として、totalという変数を定義し、その中に「0」を格納し、初期化します。これで合計値を保持する変数を初期化し、合計値を正しく計算することができる。for文を用いてself(自己)に対してドット演算子( . )を用いて「lst」を指定し、インスタンス変数にアクセス。アクセス後、変数内の数値をnum変数に繰り返し処理で格納。格納後、if文を使ってnum変数内の値を”%(パーセント)”で演算を行い2で割った余りが0である”==”(イコール2つ,等しい)場合に、代入演算子”+=”を用いてtotal変数にnum変数の値を足し合わせ、結果をtotal変数に格納。格納後、returnとしてtotal変数を返す処理になります。

メソッドを定義後、角括弧”[ ]”を用いてmy_listというリストを定義し数値を格納します。

リストを定義後、my_objという変数を定義し、その中にMyEvenSum()を格納し、インスタンス化を行います。インスタンス化によりオブジェクトが作成されたことで、クラス内にアクセスできるようになりました。なお、括弧内には引数,パラメータとしてmy_listを渡します。

最後に作成したオブジェクトに対してドット演算子( . )を用いてget_even_sum()を呼び出します。これで呼び出されたメソッドの処理が実行し結果が返されます。返された結果をprint()で出力します。

■実行・検証

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

実行してみると、クラスを定義しインスタンス変数と、リスト内の偶数の合計を返すメソッドを作成。作成後、メソッドを呼び出しリスト内の偶数の合計を出力させることができました。

コメント

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