【独学Python入門㉚】メソッド

メソッドとはオブジェクトに行う処理のことです。

前回、ライザップに入会した太郎さんを例にメソッドをご説明したいと思います。

おさらいですが、未記入の入会申込書がクラス、太郎さんが自分のデータ(プロパティ)を記入して具体的になったものがインスタンス(オブジェクト)でした。

太郎さんはどのくらい減量したいかによってコースを選択します。太郎さんは標準コースを選びました。

コースメソッド
軽め5%減wt * 0.95
標準10%減wt * 0.9
ハード20%減wt * 0.8

関数を自作する回で体重の1割を減量する「rizap」という関数を作成しましたが、同様のメソッドをソースコードに追加してテストしてみます。

#Humanクラスを定義
class Human:
    name = ''       #文字列
    ht = 0.0    #浮動小数点
    wt = 0.0    #浮動小数点
    age = 0         #数値

#メソッドを定義
    def rizap(self):
        return self.wt * 0.9

#インスタンス化    
taro = Human()
taro.name = 'taro'
taro.ht = 170.0
taro.wt = 60.0
taro.age = 35
after_wt = taro.rizap()

print(taro.age)
print(taro.ht)
print(taro.wt)
print(after_wt)

input()    #実行後にウィンドウを保持

#右が切れたら左にスワイプしてください

selfというキーワードが新しく出てきましたが、次回またご説明させて頂きます。

メソッドは関数と一緒じゃないかと思われた方もおられるかと思います。最初混乱しそうであればメソッドと関数は同じようなものと思われて大丈夫です。

ただ、明確な違いがあります。メソッドは宣言を行ったクラスのみしか処理を行うことができません。今回の例でいうと人(Humanクラス)のみしかrizap関数で処理を行うことができませんので、別で定義したお金の変数を0.9倍したいと思ってもrizapというメソッドを使用することはできず、何に対してでも処理を行える関数と性質が異なりますので注意が必要です。

独学Python入門一覧に戻る