オブジェクト指向 中級

56. クラスとインスタンスの基本

クラスは「設計図」、インスタンスは「実物」

ここから数レッスンにわたって、プログラミングの重要な考え方である「オブジェクト指向」を扱っていきます。難しそうな響きですが、身近なたとえで考えるとイメージしやすいです。クラスとは、いわば「たい焼きの型」のような設計図です。型そのものはたい焼きではありませんが、その型を使えば同じ形のたい焼きをいくつでも作れますよね。Pythonではclass クラス名:という形でこの「型」を定義し、そこから実際に作られた「実物」のことをインスタンス(またはオブジェクト)と呼びます。

なぜクラスを使うのか

「犬」を表すデータを扱いたいとき、名前や年齢といった関連する情報と、鳴くといった関連する動作を、バラバラの変数や関数として管理するのは大変です。クラスを使えば、こうした関連するデータと処理をひとまとめにして、「犬」という1つのまとまりとして扱えるようになります。これは、これから複雑なプログラムを書いていく上でとても重要な考え方です。

サンプルコード

class Dog:
    pass

dog1 = Dog()
dog2 = Dog()
dog1.name = 'ポチ'

print(dog1.name)
print(dog2)
class Dog: で「Dog」という型(設計図)を定義しています。中身が何もない場合はpassと書いておきます。Dog()と書くことで、その型から実際のインスタンスを作れます。dog1とdog2はどちらもDog型ですが、別々の実物なので、dog1にだけnameという情報を後から追加しても、dog2には影響しません。

📝 練習問題

練習問題:Catという空のクラスを定義し、そこからcat1というインスタンスを作って、cat1.name = 'タマ'を設定し表示してください。