Pythonのクラスとは?基本の定義とインスタンスの作成方法を初心者向けに解説
生徒
「先生、Pythonで“クラス”ってよく聞きますけど、いったい何なんですか?」
先生
「いい質問ですね。Pythonのクラスは、簡単に言うと“設計図”のようなものなんですよ。」
生徒
「設計図?それってどういう意味ですか?」
先生
「たとえば“犬”というものを考えてみましょう。犬の名前や年齢、吠えるという行動をまとめたもの、それがクラスなんです。」
生徒
「なるほど…。でも実際にPythonでどう書くのかも知りたいです!」
先生
「それでは、Pythonのクラスの基本とインスタンスの作り方を、一緒に学んでいきましょう!」
1. Pythonのクラスとは何か?
Python(パイソン)のクラスとは、「オブジェクト指向プログラミング」の基本となる機能で、「同じ種類のものをひとまとめにする仕組み」です。もっと簡単に言うと、「何かを作るための設計図」です。
たとえば「車」を作りたいとき、車の色や形、走る機能などをあらかじめ定義しておけば、同じ仕組みで何台でも車を作ることができますよね。それと同じで、Pythonのクラスを使うと、「似たようなデータと機能」をひとつにまとめられます。
2. Pythonのクラスを定義する方法
クラスはclassというキーワードを使って定義します。クラス名は英語で意味のある単語にして、最初は大文字にするのがルールです。次に、Pythonで犬(Dog)を表すクラスを定義してみましょう。
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name} がワンワンと吠えています!")
この例では、Dogというクラスの中に、2つの「属性(そくせい)」と、1つの「メソッド(関数のようなもの)」を定義しています。
__init__(イニット)という特別な関数は、「クラスから実体(インスタンス)を作るときに使われる関数」です。selfとは、「自分自身(そのクラス自身)」を意味する特別な言葉で、クラス内では必ず使います。
3. クラスからインスタンスを作るとは?
インスタンスとは、「クラスから作られた実際のモノ」のことです。たとえば、クラスDogは設計図ですが、そこから作った「ポチ」や「タロウ」などの実物がインスタンスです。
では、さっきのDogクラスからインスタンスを作ってみましょう。
dog1 = Dog("ポチ", 3)
dog2 = Dog("タロウ", 5)
dog1.bark()
dog2.bark()
ポチ がワンワンと吠えています!
タロウ がワンワンと吠えています!
このようにして、クラスをもとに「いろいろな個体(インスタンス)」を簡単に作ることができます。まるで「型」を使って商品をどんどん作る工場のようですね!
4. クラスを使うメリットとは?
クラスを使うことで、次のようなメリットがあります。
- 同じ種類のデータと機能をまとめて管理できる
- 再利用しやすくなる
- プログラムが整理されて読みやすくなる
たとえば、ゲームを作る場合、「キャラクター」や「アイテム」などをクラスで管理すれば、追加や変更もラクになります。
5. 初心者がつまずきやすいポイントと対策
Pythonのクラスで初心者がよくつまずくのが、「selfって何?」や「__init__ってどう使うの?」といった部分です。
selfは「そのクラスの中で、自分自身を指すキーワード」で、クラスの中で属性(変数)やメソッドにアクセスするときに必ず使います。
__init__は「クラスからインスタンスを作るときに最初に呼ばれる関数」で、「初期化(しょきか)」の意味があります。
最初は少し難しく感じるかもしれませんが、「クラス=設計図」「インスタンス=実物」と覚えておけば、だんだん慣れていきますよ!
6. 実生活の例で理解しよう:お弁当のクラス
プログラムを難しく感じる人は、実生活に置き換えて考えてみると理解が深まります。
たとえば「お弁当」のクラスを考えてみましょう。
class Bento:
def __init__(self, main, side):
self.main = main
self.side = side
def show(self):
print(f"メイン:{self.main}、おかず:{self.side}")
bento1 = Bento("ハンバーグ", "ポテトサラダ")
bento2 = Bento("焼き魚", "ひじき")
bento1.show()
bento2.show()
メイン:ハンバーグ、おかず:ポテトサラダ
メイン:焼き魚、おかず:ひじき
このように、同じBentoクラスから、いろいろなお弁当を作ることができます。
実物にたとえると、クラスは「お弁当箱の型」で、インスタンスは「その型で作ったお弁当」なんです。
7. Pythonのクラスを活用するために覚えたいキーワード
この記事では「クラス」「インスタンス」「self」「__init__」といった言葉が出てきました。どれもPythonでオブジェクト指向プログラミングを行う上でとても大切です。
- クラス(class):設計図
- インスタンス:クラスから作られた実体
- self:自分自身を指す
- __init__:最初に呼び出される関数(初期化)
プログラミング未経験でも、こうした言葉を身近な例で覚えていくことで、Pythonの世界が少しずつ広がっていきます。