Python
クラス
インスタンス
Progate
未来電子

Pythonにおけるクラスとインスタンスの関係

ProgateでPythonの基礎的なコードの学習を修了したので、個人的にややこしいと感じた部分を復習を兼ねてまとめます。


クラスからインスタンスを生成


menu.py

class MenuItem:

pass

menu_item1 = MenuItem()
menu_item.name = 'メロンパン'
menu_item.price = 150


「クラス名()」でインスタンスが生成されます。

また、「インスタンス名.インスタンス変数」で情報を追加することができます。

ここでは「name」がメロンパンであるという情報と、「price」が150であるという情報を追加しました。


インスタンスメソッド


menu.py

class MenuItem:

def info(self):
print('こちらがメニューです。')
print(self.name + ':' + str(self.price) + '円')

menu_item1 = MenuItem()
menu_item1.name = 'メロンパン'
menu_item1.price = 150
menu_item1.info()


クラス内で定義したメソッドは、「インスタンス名.メソッド名」でインスタンスに対して呼び出せます。

(インスタンス自体を代入させるため引数selfは必須)

実行結果は以下のようになります。


こちらがメニューです。

メロンパン:150円



initメソッド


menu.py

class MenuItem:

def __init__(self):
print("こちらがメニューです。")

menu_item1 = MenuItem()


このメソッドは、インスタンスを生成すると自動で呼び出されるようになっています。

そのためここでは、インスタンスを生成しただけで「こちらがメニューです」が表示されます。


まとめ

クラスからインスタンスを生成、インスタンス、initに関してまとめてみました。

ここがPythonで最初につまづいたポイントだった人も多いのではないでしょうか。

私もまだまだアウトプットを完璧にするには練習が必要なので、修行を積んでいきます。