見出し画像

Python3 | ⑥クラスの定義

こんにちは、現役理系大学生のShogoです!

今回は、Python3超入門講座第6弾です!

前回の記事を読んでいない方は、こちらからご覧ください。


今回の内容は、「クラスの定義」です。

クラスを扱うことができれば、よりわかりやすいコードを書くことができるようになります!今回の講座でしっかりと覚えていきましょう!

6-1 クラスの定義

画像2

クラスを使うと、作りたいプログラムに応じたデータ構造を作ることができます。

そうはいっても言葉ではわかりにくいと思うので、コードで説明していきます。

class Fruits(object):
   def apple(self):
       print('red')
       
fruits = Fruits()
fruits.apple() # red

例えば、Fruitsというクラス名を作ります。ここにappleという関数をつくり、出力は'red'、つまり、果物の色とします。

このコードはこのように進みます。

 fruits.apple( )を記述
→Fruitsクラスの関数appleが呼び出される
→print('red')で出力

クラスでコードをまとめるメリットは、データ構造が複雑になっても、可視性があることです。

例えば、先程のコードにorange、grape、bananaを追加するとします。すると、コードはこのようにかけます。

class Fruits(object):
   def apple(self):
       print('red')
   def orange(self):
       print('orange')
   def grape(self):
       print('black')
   def banana(self):
       print('yellow')
       
fruits = Fruits()
fruits.apple() # red
fruits.orange() # orange
fruits.grape() # black
fruits.banana() # yellow

fruits.apple( )、fruits.banana( )のように綺麗なコードになっていることがわかります。


6-2 クラスの初期化 __init__(コンストラクタ)

画像3

クラスの初期化は、「__init__」で行います。これは、initialize(=初期化)の略の頭文字を使っています。

これは、クラスの初期値を設定するときに用いられます。

例をみていきましょう。

class Fruits(object):
   def __init__(self):
       print('sweet')
   def apple(self):
       print('red')
       
fruits = Fruits() # sweet
# fruits.apple()

6-1のコードに「__init__」を追加しました。

これによって、「fruits = Fruits()」を記述するだけで、「__init__」のメソッド、つまり、「'sweet'」が出力されます。


6-3 self変数

self変数は、自分自身(クラス自身)に値を保持することができます。

例えば、次のような場合です。

class Fruits(object):
   def __init__(self, name):
       self.name = name
       print(self.name)

fruits = Fruits('Apple') # Apple

「Fruits(object)」に「name」を保持させたいとき、「__init__」に引数として「name」を書きます。そして、自分自身の名前(self.name)に引数で持ってきた名前(name)を代入します。

ここで、「Fruits()」に「'Apple'」を記述することで、「name」に「'Apple'」が渡され、出力されるというわけです。


✅他のメソッドでも呼び出せる

「__init__」は初期値として設定できると述べました。ですので、この初期値は他のメソッドでも活用することができます。

class Fruits(object):
   def __init__(self, name):
       self.name = name
       
   def color(self):
       print('{} is red.'.format(self.name))

fruits = Fruits('Apple')
fruits.color() # Apple is red.

先程のコードで、「self.name」を「'Apple'」に設定しました。

「color()」という関数を作ったとき、「format(self.name)」で先程と同様に値を呼び出せます。したがって、「fruits.color()」で「Apple is red.」が出力されます。


6-4 __del__(デストラクタ)

「__init__」はコンストラクタと呼ばれています。これに対し、「__del__」をデストラクタと呼びます。

「__del__」はクラスの最後に実行するようになっています。例をみていきましょう。

class Fruits(object):
   def __init__(self, name):
       self.name = name
       
   def color(self):
       print('{} is red.'.format(self.name))
       
   def taste(self):
       print('{} is sweet.'.format(self.name))
       
   def __del__(self):
       print('{} is excellent!'.format(self.name))

fruits = Fruits('Apple')
fruits.color()
fruits.taste()

# Apple is red.
# Apple is sweet.
# Apple is excellent!

クラスの中身がすべて実行されたあと、最後に記述されるようになっています。

「__del__」はあまり使われることがないので、最低限存在だけは覚えておくようにしましょう。


まとめ

画像1

今回は、「クラスの定義」を学習しました。

関数をまとめる、または、可視性に優れたコードを書く場合は、必須となってくるものなので、ここでしっかりと覚えておきましょう!


質問や訂正があれば、遠慮なくこの記事にコメント、もしくは、TwitterにDMをしてください!(@shogo_python)

今回の記事が"いいね!"と思ってくれた方は、スキとフォローをよろしくおねがいします!

では、またの機会にお会いしましょう!


Python3 超入門講座 一覧はこちらから