(最終更新月:2021年7月)
「Pythonのクラス class って何?」
「クラスはなんのためにあるの?」
という方も多いのではないでしょうか?
こちらの記事ではPython初学者へ向けて、
Python 「クラスとはなにか?」「クラスの特徴について」
を解説していきます
前提の知識として、Pythonの関数に関する知識が不可欠です
まだ良く知らない!という方はまずこちらをご覧ください↓
クラスは関数より複雑で、少しわかりにくい部分もあると思いますが、これから学習を進めていくにつれて慣れていくことと思います
まずは頭の片隅に置いておくつもりで、読み進めてください

おススメ記事!興味ある方はこちらもどうぞ!
【クラス用語】インスタンス化とは?
下記を読み進めるにあたり、まずはクラスに不可欠な用語「インスタンス化」について説明します
Pythonクラスにおけるインスタンスとは、変数に代入されたクラスオブジェクト
のことを示します(わからなくても一旦は下まで読み進めてみて下さい!)
例として、ここに「Example」というクラスがあったとすると、
example_instance = Example()
とすることで、「example_instance」はExampleクラスをインスタンス化したものという認識になります

インスタンス化についてはなんとなくイメージがつきましたでしょうか?
関数と比較しクラスでできることを解説します
【クラスの特徴①】複数の関数を束ねる
クラスには複数の関数を定義することができます
そのため、クラスをインスタンス化した場合、状況に応じて様々な関数を使用することが可能です
ただ、ここで言葉を並べてもよくわからないと思います
下記にて「Good morning!」「Good evening!」と返す関数を束ねたクラスを作ってみます
class Greeting():
def morning(self):
print("Good morning!")
def evening(self):
print("Good evening!")
細かい書き方は別記事でご説明するとして、ここでは「morning」「evening」という関数がGreetingというクラスで定義されていることを確認して下さい
インスタンス化します
greeting = Greeting()
関数を実行してみます
greeting.morning()
Good morning!
greeting.evening()
Good evening!
「greeting」という一つのインスタンスで2つの関数が使えることがわかりますでしょうか?
対して、単なる関数を使用した場合、「morning」「evening」という関数をそれぞれ作成し、インスタンス化の上、実行しなければなりません
もう一つ特徴を見ていきましょう
【クラスの特徴②】引数&データ保持
上記のGreetingクラスを参考に、「name」という引数を受け取る&データ保持のための関数を追記した、「Greeting2」というクラスを作成します
また、「name」を挨拶に入れるために関数を少し書き換えましょう!
class Greeting2():
def __init__(self, name):
self.name = name
def morning(self):
print(f"Good morning, {self.name}!")
def evening(self):
print(f"Good evening, {self.name}!")
__init__という関数はPythonクラスですでに用意されている関数です
ここでの詳しい説明は省きます
引数を渡してインスタンス化しましょう!
greeting_to_yu = Greeting2("Yu")
関数を実行してみます
greeting_to_yu.morning()
Good morning, Yu!
greeting_to_yu.evening()
Good evening, Yu!
引数の名前が挨拶できちんと反映されていますね!
別の値を引数に代入しインスタンス化することで、どんな値に対しても同じ関数を使うことができます
まとめ
上記でご説明の通り、クラスとは、
- 一時的にデータの保存ができる
- 保存したデータに対して処理をする関数を同時に保存することができる
の特徴をもつオブジェクトになります
その他にも、「継承」という強力な特徴もあります
継承についてはこちらの記事をご覧ください
当記事ではクラスとはなにか?クラスの特徴にスポットをあてて解説を致しました
クラスの作り方については別記事をご用意いたしますのでお楽しみに!
日報アプリを一から開発し、ウェブに公開するまではこちらにまとめています
また、公開したウェブアプリはこちら(https://nippo.itc-app.site)でご覧いただけます(公開後もアップデート中)
その他、各分野別に
を記載したページも用意しています
ご自身の目的に合わせて、お好きな箇所からご覧ください
