クラスclassについて

ゆうき( @BASEBALLY15 )です^^

Pythonの入門を勉強していて,『クラス(class)』というのが,よく分からないです・・・

selfなど,今まで使ったことがない文字があって,分かりにくいですよね^^
今回は,クラス(class)の使い方について,ご紹介します.

よろしくお願いします・・・

クラス( class )って何?

クラスとは,簡単に言うと『設計図』です.

以下の図の場合,まず設計図(class)に基づいて計算を行っています.

クラス_class_設計図
図1

また,クラス(class)について考える前に,

オブジェクト指向』という言葉について知っている必要があります.

オブジェクト指向とは?

オブジェクトとは,『変数』と『関数』をセットにしたもののことを言います.

下の図を見ていただくと分かりやすいと思います.

オブジェクト指向とは?
図2

このように,x,yのように値が変化するものと,それをまとめた関数を合わせて,

オブジェクト』と言います.

クラス(class)を使う場合,このオブジェクト指向を意識することが大切です!

また,クラスを使う上で,重要な用語が2つあります.それは,

  • コンストラクタ
  • インスタンス

です.

コンストラクタとは?

コンストラクタは,上で紹介した,オブジェクトで使う変数などを初期化するために使います.

このようにコードを書きます.

def __init__(self, 引数1, 引数2, ・・・):

ちなみに,『self』は,オブジェクトを指します.

インスタンスとは?

インスタンスとは,クラス(class)を実体化したもののことを言います.

クラスは設計図でしかないので,これを使える形にしなければいけません.

そこで使うのが,『インスタンス』です.

このようにコードを書きます.

インスタンス名 = クラス名(引数1, 引数2, ・・・)

インスタンスを作る前に,クラス(class)内で,

このように変数を初期化しておく必要があります.

class クラス名():
    
    #コンストラクタを用意(初期化)
    def __init__(self, 引数1, 引数2, ・・・):

        self.変数1 = 引数1

        self.変数2 = 引数2

        ・・・

それでは,実際にクラス(class)を使ってみましょう⤵

クラス(class)は設計図である!

今回は,計算を行うながら,クラス(class)についての理解を深めていきます.

クラス(class)を使って,計算をしてみよう!

まず,クラス名を『Calculation』とします.

そして, Calculation クラスの中に計算を行うための関数を用意します.

(※まとめて載せます.)

#合計を計算するクラスを作成
class Calculation():
    
    #コンストラクタを用意(初期化)
    def __init__(self, x, y):

        self.X = x

        self.Y = y

    #足し算
    def sum(self):

        sum_num = self.X + self.Y
        
        print(sum_num)

    #引き算
    def subtraction(self):

        subtraction_num = self.X - self.Y
        
        print(subtraction_num)
     
    #掛け算
    def multiplication(self):
        
        multiplication_num = self.X * self.Y
        
        print(multiplication_num)
      
    #割り算
    def division(self):
        
        division_num = self.X / self.Y
        
        print(division_num)

そして,インスタンスを作ります.

#インスタンスを作成(x=7,y=2)
calculation_num = Calculation(7, 2)

それでは,実行してみましょう.

#実行
#足し算
calculation_num.sum()

#引き算
calculation_num.subtraction()

#掛け算
calculation_num.multiplication()

#割り算
calculation_num.division()
実行結果
9
5
14
3.5

次に,実行するときに,値を追加する方法をご紹介します.

実行時に,値を入れてみよう!

まずは,クラス(class)を作ります.

#合計を計算するクラスを作成
class Sum_count3():
    
    #コンストラクタを用意
    def __init__(self, a, b, c):
        
        self.num_1 = a
        
        self.num_2 = b
        
        self.num_3 = c
        
    def sum(self, num_d):
        
        sum_counts = self.num_1 + self.num_2 + self.num_3 + num_d
        
        print(sum_counts)

次に,インスタンスを作ります.

#インスタンスを作成
sum_instance3 = Sum_count3(15, 26, 33)

そして,実行するときに,クラス内の『num_d』に値を入れます.

#実行(num_d=50)
sum_instance3.sum(50)

実行結果

124

最後に,戻り値(return)を使った方法をご紹介します.

戻り値(return)を使ってみよう!

クラス(class)では,戻り値(return)を使うことが出来ます.

#合計を計算するクラスを作成(戻り値を使う)
class Sum_count2():
    
    #コンストラクタを用意
    def __init__(self, x, y, z):
        
        self.num_1 = x
        
        self.num_2 = y
        
        self.num_3 = z
        
    def sum(self):
        
        return int(self.num_1 + self.num_2 + self.num_3)

このように,sum関数で戻り値(return)を使います.

そして,インスタンスを作り,実行します.

#インスタンスを作成
sum_instance2 = Sum_count2(15, 26, 33)
#実行
print("x+y+z=" + str(sum_instance2.sum()))

実行結果

x+y+z=74

終わりに

今回は,クラス(class)の使い方について,基礎的な内容をご紹介しました.

この方法を知っていると,データ分析や画像処理で,きれいなコードが書けるのではないでしょうか^^

それでは・・・

Q &A

参考資料

https://docs.pyq.jp/python/library/class.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA