Pythonのクラスとは?基本の定義とインスタンスの作り方を初心者向けに徹底解説
生徒
「Pythonの勉強をしていたら『クラス』って言葉が出てきました。でも、何のことか全然わかりません…」
先生
「Pythonのクラスは、現実世界の物をプログラムで表現するための“設計図”のようなものです。」
生徒
「設計図…?パソコンを触ったことがない人でも理解できますか?」
先生
「大丈夫です。身近なたとえを使いながら、クラスとインスタンスの関係を一つずつ説明していきましょう。」
1. Pythonのクラスとは何か?
Pythonのクラスとは、オブジェクト指向プログラミングで使われる考え方の一つです。 オブジェクト指向プログラミングとは、現実世界の「物」や「概念」を、そのままプログラムの世界に持ち込む考え方です。
例えば「たい焼き」を想像してください。たい焼きそのものではなく、 「たい焼きを作るための型」があったとします。この型が、Pythonでいうクラスです。
クラスは「どんな特徴を持っているか」「どんな動きができるか」をまとめたものです。 Pythonのクラスを使うことで、プログラムの構造が整理され、読みやすくなります。
2. クラスとインスタンスの違い
クラスと一緒によく出てくる言葉にインスタンスがあります。 インスタンスとは、クラスという設計図から実際に作られた「実物」のことです。
たい焼きの例で言うと、クラスはたい焼きの型、インスタンスは実際に焼き上がったたい焼きです。 同じ型から、あんこたい焼きやクリームたい焼きなど、複数のたい焼きを作れます。
Pythonでは、クラスからインスタンスを作ることで、同じ仕組みを持つオブジェクトを何個も使えます。
3. Pythonでクラスを定義する基本構文
Pythonでクラスを作るには、classというキーワードを使います。
クラス名は、最初の文字を大文字にするのが一般的なルールです。
class Taiyaki:
pass
passは「今は何も書かない」という意味です。
まずはクラスの形だけを作りたいときに使われます。
4. インスタンスを作ってみよう
クラスを定義しただけでは、まだ何も動きません。 クラスからインスタンスを作ることで、実際に使えるようになります。
taiyaki1 = Taiyaki()
taiyaki2 = Taiyaki()
このように書くことで、Taiyakiクラスから2つのインスタンスが作られます。 見た目は同じでも、別々のたい焼きとして扱われます。
5. クラスの中にデータを持たせる(属性)
クラスの中には、データを持たせることができます。 このデータのことを属性と呼びます。
Pythonでは、__init__という特別な関数を使って属性を設定します。
これは「初期化メソッド」と呼ばれ、インスタンスが作られたときに自動で実行されます。
class Taiyaki:
def __init__(self, flavor):
self.flavor = flavor
selfは「このインスタンス自身」を表す特別な変数です。
難しく感じるかもしれませんが、「自分自身に情報を持たせるためのもの」と考えてください。
6. 属性を使ってみる
属性を持つクラスからインスタンスを作ると、それぞれに違うデータを持たせられます。
taiyaki1 = Taiyaki("あんこ")
taiyaki2 = Taiyaki("クリーム")
print(taiyaki1.flavor)
print(taiyaki2.flavor)
あんこ
クリーム
同じクラスから作られたインスタンスでも、属性の値が違うことがわかります。 これがクラスとインスタンスの大きな特徴です。
7. クラスを使うメリット
Pythonでクラスを使うと、プログラムを部品ごとに整理できます。 初心者のうちは難しく感じるかもしれませんが、 「同じような処理や情報をまとめられる箱」と考えると理解しやすくなります。
クラスを使わない場合、同じような変数や処理を何度も書くことになります。 クラスを使えば、修正や管理がとても楽になります。
Pythonのオブジェクト指向プログラミングでは、このクラスが中心的な役割を持っています。