【Python】class とは?使い方まで初心者にもわかりやすく図で解説!
class(クラス)って結局なんや? どうやってつかうんや?

 

そう思ったことありませんか?

どーもTakeです。

 

この記事では、Python のclass(クラス)とは?その使い方について簡単に解説します。

 

class(クラス)というと設計図とかオブジェクト指向における概念とかいろんな表現がありますが、

わたしはプログラミング初心者のうちはさっぱりわかりませんでした

 

やってくうちに何となく必要性がわかってくる」そういうものだと思います。

ですがclass(クラス)という考え方は初めのうちはどうしても難しいため、

この記事ではPython のclass(クラス)について図をつかって簡単に解説します。

 

この記事でわかること!
  1. Python のclass(クラス)について
  2. Python のclass(クラス)の使い方

 

スポンサーリンク

Python のclass(クラス)について

class(クラス)を説明する上で必要なキーワードが三つあります。

これらを順に説明します。

 

3つのキーワード
  1. クラス・・・設計図のこと
  2. インスタンス・・・設計図をもとに実際に作ったもの
  3. オブジェクト指向・・・クラスをつかって開発する手法のこと

 

クラスとは?

class(クラス)とはイメージは設計図と思ってください。

もっと簡単に言うと変数と関数をまとめたものと思っておけばOKです。

 

たとえば、Python で Human(人間)を作ってみようと思います。

Human(人間)には名前、身長、体重といった様々な要素があり、話したり歩いたりいろんな動作もあります。

 

それをPython でHuman(人間)をクラスにしようとすれば「要素 = 変数」「動作 = メソッド」になります。

これら「変数」「メソッド」をまとめて定義したものがクラスです。

 

 

インスタンスとは?

クラスを理解する上で次に出てくる重要なキーワードが「インスタンス」です。

「インスタンス」とはクラス(設計図)として宣言したときの実体化させたもの

設計図をもとに実際に作ったもの)のことです。

 

「Human(人間)クラスをつくりました!じゃあソースコードで呼び出して使うで!」ってなったとき

どう呼び出すか?って考えてください。

 

おそらく「tanaka = Human()」という風に書くことになります。その「tanaka」っていうものが「インスタンス」です。

つまりクラスというのはあくまで「設計図」であり、その設計図をもとに実際に作ったものがインスタンスです。

 

 

オブジェクト指向とは?

また class(クラス)を学んでいくと「オブジェクト指向」という言葉がでてきます。

オブジェクト指向」とは class(クラス)をつかって開発していくプログラミング手法のことです。

 

Python のclass(クラス)の使い方

では プログラミングで Human(人間)クラスを作ってみようと思います。

 

Human(人間)クラスの構成
  1. 名前 ・・・ 変数 name として定義する予定
  2. 身長 ・・・ 変数 height として定義する予定
  3. 体重 ・・・ 変数 weight として定義する予定

 

この構成で Human クラスを定義します。

下記のように Human クラスは def で定義されるメソッド(関数)と変数(name、height、weight)で構成されてます。

 

※「__init__」はいったん無視してください。あとで説明します。

クラスとはこのように変数と関数をまとめた設計図だと理解すれば最初はOKです。

 

ではこの Human(人間)クラスから「田中(tanaka)さん」を作ろうと思います。

下記ソースコードの一番下で「tanaka = Human("tanaka",170,50)」とあります。

この tanaka は Human クラスで定義したものでインスタンスといいます。

 

この tanaka を宣言した際、Human クラスで「__init__」が呼び出されます。

この「__init__」をコンストラクタと呼びます。

コンストラクタとはクラスを呼ば出した際(つまりインスタンスが定義されたとき)に

最初に呼ばれるメソッド(関数)のことです。

 

 

そして「__init__」コンストラクタには引数(self, name, height, weight)があります。

「tanaka = Human("tanaka",170,50)」と宣言したため、name = "tanaka"、 height = 170、weight = 50 と値が代入されます。

 

ここで「あれ? self は?」となると思います。

「self」はインスタンス自身を意味する慣用語であり、そのメソッド内でクラスの変数を使用する場合に呼び出しが

必要であるため記述されており、引数ではありません。

 

もっと簡単に言うとクラスには「name, height, weight」という3つの変数があり、

「self」はそれら変数を呼び出すために必要なだけです。

 

ここまでのまとめ
  1. クラス・・・設計図のこと、変数と関数をまとめたもの(Human クラス)
  2. インスタンス・・・クラスを呼び出したもの(tanaka = Human("tanaka",170,50))
  3. コンストラクタ・・・クラスを呼び出した時に最初に処理するメソッド(「__init__」関数)

 

※ コンストラクタの逆に「デストラクタ」も存在します。

これはインスタンスが破棄されたタイミングで呼び出される処理のことです。

 

クラスの変数とメソッドの呼び出し

クラスで定義した変数とメソッドの呼び出し方法です。

 

変数とメソッドの呼び出し方法
  1. 変数・・・インスタンス名.変数
  2. メソッド・・・インスタンス名.メソッド

 

具体的にソースコードで説明します。

先程と同様 Human クラス内にある変数とメソッドを呼び出します。

 

上記ソースコードで「#実行部分」を確認してください。

まず定義した Human クラスのインスタンスである tanaka を定義します。

その際に引数に Human("tanaka",170,50)とすることで name = "tanaka"、 height = 170、weight = 50 と値が代入されます。

 

そして「tanaka.name」とすることでクラス内の変数 name = "tanaka" を呼び出しできます。

最後に「tanaka.hello()」と呼び出すことでクラス内のメソッド hello の処理が実行され「hello」と表示されます。

 

最後に

いかがでしたでしょうか?

この記事では、Python のclass(クラス)の使い方について解説しました。

 

これだけ抑えとけばOK!
  1. クラス・・・設計図のこと
  2. インスタンス・・・設計図をもとに実際に作ったもの
  3. オブジェクト指向・・・クラスをつかって開発する手法のこと
  4. コンストラクタ・・・インスタンスが定義されたときに呼び出される処理
  5. デストラクタ・・・インスタンスが破棄されたときに呼び出される処理

 

クラスを学び際はとりあえず上記5つのカタカナを理解する必要があります。

私も最初はまったくわからなかったですが、いろいろと開発していくうちに覚えました!

 

ぜひいろいろなクラスをつくってクラスをマスターしていただければと思います。

ではでは。

 

スポンサーリンク
おすすめの記事