Pythonでクラス、インスタンス変数とメソッドを用いてリストの合計を出力する

スポンサーリンク

Pythonでクラス、インスタンス変数とメソッドを用いてリストの合計を出力するプログラムを作ってみます。

■今回の環境(Python)

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

■クラス、インスタンス変数とメソッドを用いてリストの合計を出力する

では、早速クラス、インスタンス変数とメソッドを用いてリストの合計を出力するプログラムを作るためにコードを書いていきます。

■コード

class MyClass:
    def __init__(self, lst):
        self.lst = lst
    def get_sum(self):
        total = 0
        for num in self.lst:
            total += num
        return total

my_instance = MyClass([1, 2, 3, 4, 5])
print(my_instance.get_sum())

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

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

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

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

■実行・検証

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

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

コメント

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