2
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-05-24

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で最初につまずいたポイントだった人も多いのではないでしょうか。
私もまだまだアウトプットを完璧にするには練習が必要なので、修行を積んでいきます。

2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2