このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Python入門】データ属性からオブジェクトに値を保存する

データ属性からオブジェクトに値を保存する
オブジェクト指向プログラミングにおいて、データ属性は各インスタンスに固有の情報を保存するための重要な仕組みです。オブジェクトに対して、後から動的に属性を追加したり、既存の属性の値を変更することが可能です。
ここでは、データ属性の基本的な利用方法と、実際のプログラム例を通してどのようにオブジェクトに値を保存するのかを、表や具体例を用いて解説していきます。

プログラムのダウンロード
「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。
1.データ属性の基本概念
1.1. データ属性の参照方法
オブジェクトに保存された値(データ属性)は、以下のような記法で参照できます。
オブジェクト.属性名
たとえば、あるオブジェクト obj
に color
という属性が保存されている場合、obj.color
と書くことで、その値にアクセスすることができます。
1.2. データ属性の追加と更新
既存のオブジェクトに対して新たな属性を追加したり、既存の属性の値を変更する際は、次のように記述します。
オブジェクト.属性名 = 値
この記法では、右辺に任意の式を記述できるため、計算結果や他の変数の値を利用することも可能です。以下の表は、データ属性の参照と更新の基本的な操作をまとめたものです。
操作 | 記述方法 | 説明 |
---|---|---|
参照 | オブジェクト.属性名 | オブジェクトに保存されている値を取得する。 |
追加/更新 | オブジェクト.属性名 = 値 | 新たな属性を追加するか、既存の属性の値を変更する。 |
2.実践例:Gadget クラスを用いたデータ属性の利用
2.1. Gadget クラスの定義とインスタンス生成
ここでは、電子機器を表現するための空のクラス Gadget
を定義し、そこに各オブジェクト固有の情報を保存する例を紹介します。まずは、以下のように Gadget
クラスを定義します。なお、クラス内に何も記述しない場合は、pass
文を使って空のクラスとして定義します。
class Gadget:
# Gadgetクラスは、電子機器を表すための空の設計図です。
# 現段階では属性やメソッドは定義していません。
pass
次に、このクラスからインスタンスを生成し、変数に保存します。ここでは dev1
という変数に、最初のGadgetオブジェクトを代入します。
2.2. データ属性への値の代入と表示
生成したオブジェクト dev1
に対して、データ属性を追加して値を保存します。ここでは、model
(機種名)と cost
(価格)の2つの属性を設定し、その内容を表示するプログラム例を示します。
# Gadgetクラスからオブジェクトを生成し、変数dev1に保存する
dev1 = Gadget()
# dev1オブジェクトに対して、データ属性modelとcostを追加(または更新)する
dev1.model = "Smartwatch" # 機種名として"Smartwatch"を代入
dev1.cost = 299 # 価格として299を代入
# 保存されたデータ属性の値を表示する
print(dev1.model, dev1.cost) # 出力結果: Smartwatch 299
実行結果
Smartwatch 299
このコードでは、まず dev1
という変数に Gadget
クラスのインスタンスを生成し代入します。続いて、dev1.model
に文字列 "Smartwatch"
を、dev1.cost
に数値 299
を代入しています。最後に print
関数を用いて、dev1
の model
と cost
の値を出力しています。
さらに、別のオブジェクト dev2
を生成して、異なる値を代入する例も見てみましょう。
# 新たにGadgetクラスからオブジェクトを生成し、変数dev2に保存する
dev2 = Gadget()
# dev2オブジェクトに対して、異なるデータ属性の値を設定する
dev2.model = "Earbuds" # 機種名として"Earbuds"を代入
dev2.cost = 149 # 価格として149を代入
# dev2の属性値を表示する
print(dev2.model, dev2.cost) # 出力結果: Earbuds 149
実行結果
Earbuds 149
この例では、dev2
という別のインスタンスに対して、model
と cost
の値をそれぞれ "Earbuds"
と 149
に設定しています。各オブジェクトは独自の属性値を持つため、同じクラスから生成されても異なる情報を保存できる点がデータ属性の大きな特徴です。
まとめ
ここでは、データ属性を利用してオブジェクトに値を保存する基本的な方法について解説しました。
- オブジェクト.属性名という記法を用いて、既存の属性の値を参照できる。
- オブジェクト.属性名 = 値という形式で、新たな属性を追加または既存の属性の値を更新できる。
さらに、空の Gadget
クラスを例に、インスタンス生成後に異なるデータ属性を設定し、各オブジェクトが独自の情報を保持できることを確認しました。これらの概念を理解することで、より柔軟で拡張性の高いオブジェクト指向プログラミングが可能になります。