LoginSignup
1
3

More than 3 years have passed since last update.

Pythonのクラスの書き方

Last updated at Posted at 2021-01-19

目的

pythonを勉強しているうえで、クラスの書き方に理解が一度で追いつかなかったので、アウトプットして定着させる。

クラスとインスタンス

  • クラス・・・プログラミングにおいて、「モノ」を生成するためのレシピ的なもの

  • インスタンス・・・レシピをもとに生成された「モノ」

クラスの宣言方法

クラスを扱うには、宣言する必要がある。

sample.py
#クラスの宣言
class SampleClass():

クラスの使い方

クラスの中で関数を定義することができる。
クラスの中で定義された関数のことをメソッドという。

メソッドの定義の方法は通常の関数と同じだが、第1引数にselfを使う。

sample.py
#クラスの宣言
class SampleClass():
    def hello(self):
        print("Hello World!")

インスタンス変数の生成

インスタンスには色々な情報を定義することができる。
八百屋さんで売っていそうな品物を例にしてみる。
下記のプログラムで、家電の名前を出力する。
「インスタンス.インスタンス変数名」とすることで、インスタンスの変数を利用することができる

yaoyaclass.py
#クラスの宣言
class YaoyaItem():
    def vegetable(self):
        print(self.name)

#YaoyaItemクラスの値を代入
yaoyaitem1 = YaoyaItem()
#yaoyaitem1のnameが「大根」である情報を追加
yaoyaitem1.name = "大根"

#クラスの中で定義したメソッドを呼び出す
yaoyaitem1.vegetable()

vegetableメソッドが呼び出されて、以下の結果が得られる

大根

メソッドに引数を持たせる場合

メソッドに引数を持たせる場合は、第2引数以降に引数名を記載する

yaoyaclass.py
#クラスの宣言
class YaoyaItem():
    def payment(self,count):
        #戻り値に合計金額を設定
        total_price = self.price * count
        return total_price

#YaoyaItemクラスの値を代入
yaoyaitem1 = YaoyaItem()
yaoyaitem1.name = "りんご"
yaoyaitem1.price = 50

#第2引数のcountに、4を代入する
result = yaoyaitem1.payment(4)
print(yaoyaitem1.name+"を4個買いました。合計"+str(result)+円です)

結果は下記のように表示される。

りんごを4個買いました。合計200円です

感想

とりあえず書いてみましたが、少しは定着できたかな。

1
3
1

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
1
3