Pythonで空のリストなどを用意したクラスを定義する

スポンサーリンク

Pythonで空のリストなどを用意したクラスを定義し実装してみます。

■今回の環境(Python)

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

■空のリストなどを用意したクラスの定義する

では、早速空のリストなどを用意したクラスを定義するために、コードを書いていきます。

■コード

class Dog:
    def __init__(self, name):
        self.name = name
        self.tricks = []
        
    def add_trick(self, trick):
        self.tricks.append(trick)

my_dog = Dog("太郎")  
my_dog.add_trick("お手")  
print(my_dog.tricks)

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

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

メソッドを定義後、my_dogという変数を定義し、その中でDog()を用います。これでインスタンス化を行います。インスタンス化によりオブジェクトが作成されたことで、クラス内にアクセスできるようになりました。この時に括弧内に引数,パラメータとしてnameに渡す要素である「太郎」を渡します。

その後、作成したオブジェクトであるmy_dogに対して(.)ドット演算子を用いてadd_trick()を呼び出します。この時に括弧内に引数,パラメータとしてtrickに渡す要素である「お手」を渡します。

最後に、作成したオブジェクトであるmy_dogに対して(.)ドット演算子を用いてtricksにアクセスし作成したリストをprint()で出力します。

■実行・検証

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

実行してみると、クラス内に空のリストを用意し、用意したリストに要素を追加し、追加した要素が含まれたリストを、作成したオブジェクトを介して出力させることができました。

コメント

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