
ゆうき( @BASEBALLY15 )です^^
Pythonの入門を勉強していて,『クラス(class)』というのが,よく分からないです・・・
selfなど,今まで使ったことがない文字があって,分かりにくいですよね^^
今回は,クラス(class)の使い方について,ご紹介します.
よろしくお願いします・・・

目次
クラス( class )って何?
クラスとは,簡単に言うと『設計図』です.
以下の図の場合,まず設計図(class)に基づいて計算を行っています.

また,クラス(class)について考える前に,
『オブジェクト指向』という言葉について知っている必要があります.
オブジェクト指向とは?
オブジェクトとは,『変数』と『関数』をセットにしたもののことを言います.
下の図を見ていただくと分かりやすいと思います.

このように,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)の使い方について,基礎的な内容をご紹介しました.
この方法を知っていると,データ分析や画像処理で,きれいなコードが書けるのではないでしょうか^^
それでは・・・