Pythonのクラスとは?初心者向けにわかるオブジェクト指向とインスタンス作成の基本
生徒
「Pythonって聞いたことはあるんですが、クラスって何をするものなんですか?」
先生
「Pythonのクラスは、プログラムの中で“設計図”のような役割をする仕組みです。現実の物をコンピューターの中で表現するときに使います。」
生徒
「設計図ということは、何かを作る元になるんですか?」
先生
「その通りです。クラスから実際に使える“インスタンス”を作ることで、Pythonで色々な処理ができるようになります。」
1. Pythonのクラスとは何かを超かんたんに説明
Pythonのクラスとは、オブジェクト指向プログラミングという考え方の中心になる仕組みです。 オブジェクト指向と聞くと難しく感じますが、考え方はとてもシンプルです。 クラスは「たい焼きの型」のようなもので、そこから実際のたい焼きを作ることができます。 このたい焼きが、Pythonでは「インスタンス」と呼ばれます。
パソコンを触ったことがない人でも、現実の物に置き換えると理解しやすくなります。 例えば「車」というクラスを作ると、「赤い車」「青い車」などを何台も作れます。 この考え方が、Pythonのクラスの基本です。
2. クラスを使う理由とPythonでのメリット
Pythonでクラスを使う理由は、プログラムを整理しやすくするためです。 クラスを使わないと、同じような処理を何度も書くことになり、間違いも増えやすくなります。 クラスを使えば、共通の処理や情報を一か所にまとめられます。
初心者にとっての大きなメリットは、「後から見ても意味が分かりやすい」ことです。 Pythonは読みやすい言語ですが、クラスを使うことでさらに理解しやすくなります。 これがオブジェクト指向プログラミングがよく使われる理由です。
3. Pythonでクラスを定義する基本の書き方
それでは、Pythonでクラスを定義する基本的な書き方を見てみましょう。
クラスは class というキーワードを使って作ります。
初心者の方は「classはクラスを作りますよ、という合図」と覚えてください。
class Person:
pass
この例では Person というクラスを作っています。
pass は「今は中身を書かない」という意味です。
まずは形だけ作るときによく使われます。
4. インスタンスとは?クラスとの違いを理解しよう
インスタンスとは、クラスから作られた実体のことです。 先ほどのたい焼きの例で言うと、型がクラスで、焼き上がったたい焼きがインスタンスです。 Pythonでは、クラス名の後ろに丸かっこを付けることでインスタンスを作れます。
person1 = Person()
これで person1 というインスタンスが作られました。
同じクラスから、何個でもインスタンスを作れるのが特徴です。
5. __init__メソッドで情報を持たせてみよう
クラスに情報を持たせたいときは、__init__ メソッドを使います。
メソッドとは「処理のまとまり」のことです。
__init__ は、インスタンスが作られたときに自動で実行されます。
class Person:
def __init__(self, name):
self.name = name
self は「自分自身」を表します。
少し難しく感じますが、「このインスタンスの中の名前」と思えば大丈夫です。
6. インスタンスを作って実際に使ってみる
それでは、名前を持ったインスタンスを作ってみましょう。 クラスに値を渡すことで、それぞれ違う情報を持たせられます。
person1 = Person("たろう")
person2 = Person("はなこ")
print(person1.name)
print(person2.name)
たろう
はなこ
同じクラスから作ったのに、別々の名前を持っていることが分かります。 これがPythonのクラスとインスタンスの基本的な使い方です。
7. クラスを使うと何が便利になるのか
Pythonのクラスを使うと、情報と処理をセットで管理できます。 これは初心者がプログラムを理解する上で、とても助けになります。 バラバラに書くよりも、意味のある形でまとめられるからです。
オブジェクト指向プログラミングは、現実世界の考え方に近いのが特徴です。 そのため、プログラミング未経験の人でも、慣れてくると自然に理解できるようになります。
8. Python初心者がクラスでつまずきやすいポイント
初心者がつまずきやすいのは、「クラス」と「インスタンス」の違いです。
クラスは設計図、インスタンスは実物、と何度も意識すると理解しやすくなります。
また、self の意味が分からなくなることも多いですが、焦らなくて大丈夫です。
まずは「クラスからインスタンスを作れる」という点だけ押さえておけば問題ありません。 Pythonのクラスは、使いながら少しずつ慣れていくものです。