Pythonのインスタンスメソッドでインスタンス変数を作成する

スポンサーリンク

Pythonのインスタンスメソッド(Instance Methods)でインスタンス変数を作成してみます。

■Python

今回は、Google Colaboratoryを用います。Google ColaboratoryのPythonのバージョンは、記事作成時点では「3.7.13」となっています。

■インスタンスメソッド(Instance Methods)でインスタンス変数(Instance Variables)を作成する

では、早速インスタンスメソッドでインスタンス変数を作成してみます。

■コード

class human: #クラスの定義
   #コンストラクタ
  def __init__(self, name, country):
    #インスタンス変数
    self.name = name
    self.country = country
    #インスタンスメソッド
  def add_data(self, data_test):
    #インスタンスメソッド内のインスタンス変数
    self.data_test = data_test

#オブジェクトの作成
h_object = human("日本人","日本")

#インスタンスメソッドの呼び出し
h_object.add_data("頑張る")

print('名前:', h_object.name, '国:', h_object.country,'特徴:', h_object.data_test)

まずは、インスタンスメソッド(Instance Methods)を定義するために、オブジェクトを作成するためのテンプレート(設計図)であるクラスを定義します。今回は「human」になります。

その後、def文を用いて__init__() 関数というコンストラクターを定義します。これで、インスタンスの属性(変数)を定義し、それらに値(プロパティ)を割り当てます。今回は「self.name」と、「self.country」という2つのインスタンスの属性(変数)を定義します。

定義後、さらにdef文を用いてadd_data()というインスタンスメソッドを定義します。定義する際は、括弧内には最初の引数,パラメータとして「self(自己)」を設定します。次に第2の引数,パラメータとして、data_testを設定します。これはインスタンス変数に格納する値をこの引数,パラメータに渡します。add_data()というインスタンスメソッドを定義後、その中に「self.data_test」というインスタンスの属性(変数)を定義します。これで、インスタンスメソッド内のインスタンス変数の作成は完了となりました。

完了後、呼び出すために、h_objectという変数を定義し、その中に「human()」を格納します。これでオブジェクトを作成するためのプロセスである「インスタンス化」が行われました。なお、今回は括弧内にインスタンスの属性(変数)に割り当てる値(プロパティ)を引数,パラメータとして渡します。今回は「日本人,日本」とします。

さらに今回定義したインスタンスメソッドを呼び出すために、h_objectというオブジェクトに対してドット(.)演算子を用いてその後にadd_data()を記述します。これでインスタンスメソッドを呼び出すことができます。呼び出した後に、インスタンス変数にアクセスしますが、このままではインスタンス変数内の値が空なので、括弧内に引数,パラメータとして値を渡します。今回は「頑張る」とします。これで、インスタンスメソッド内のインスタンス変数に値が割り当てられました。

値を割り当てた後に、print()を用いて、インスタンスメソッド内のインスタンス変数の値を出力してみます。

■検証・実行

コードを保存後、このコードを実行してみます。

実行してみると、インスタンスメソッドで作成したインスタンス変数内の値を出力させることができました。今回の検証結果から、インスタンス変数(属性)は __init__() 関数(コンストラクター)だけに特有のものではなく、クラス内の他の場所で定義することも可能だということがわかりました。

コメント

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