【Python】クラスの基本!設計図と実体(インスタンス)を理解する
Pythonを学んでいると必ず出会うのが「クラス(Class)」です。一見難しそうですが、仕組みを理解するとプログラムの整理整頓が劇的に楽になります。今回は、最もシンプルなクラスを作成しながら、その基本構造を解説します。
1. 考え方:設計図(クラス)と実体(インスタンス)
プログラミングにおけるクラスは、よく「たい焼きの型(設計図)」に例えられます。型があるだけでは食べられませんが、その型から作られた「たい焼き(実体)」は食べることができます。
・クラス (Class):データの「設計図」です。
・インスタンス (Instance):設計図から生成された「実体」です。
・メソッド:クラスの中で定義された「関数(ふるまい)」のことです。
・インスタンス (Instance):設計図から生成された「実体」です。
・メソッド:クラスの中で定義された「関数(ふるまい)」のことです。
2. Pythonサンプルプログラム
挨拶を表示するだけのシンプルなクラスを作成します。クラスを使うには、まず「実体化(インスタンス化)」を行う必要があります。
# -*- coding: utf-8 -*- class Test: # メソッドの定義。第一引数には必ず「self」を書く決まりです。 def printTest(self): print("Hello") def main(): # 1. インスタンス化(設計図から実体を作る) test = Test() # 2. メソッドを呼び出す test.printTest() if __name__ == "__main__": main()
3. 実行結果
Hello
4. ステップアップ:謎の引数「self」の正体
クラス内のメソッドを定義する際、必ず最初に self という引数を書きます。これは一体何でしょうか?
- 自分自身を指す:
selfは「そのメソッドを呼び出しているインスタンス(自分自身)」を指します。 - 個別のデータを保持する:同じクラスから複数のインスタンスを作った際、それぞれのインスタンスが持つデータを区別するために
selfが使われます。
※呼び出すときは test.printTest() のように書き、self に値を渡す必要はありません。Pythonが自動的にインスタンス自身を self に放り込んでくれます。
5. クラスと関数の使い分け
単なる処理のまとまりなら「関数」で十分ですが、クラスを使うと以下のメリットがあります。
| 機能 | メリット | 主な用途 |
|---|---|---|
| 関数 | シンプルで軽量 | 入力に対して出力を返すだけの計算など。 |
| クラス | 「状態」を保持できる | RPGのキャラ(HPや攻撃力を持つ)のように、データと処理をセットにしたい時。 |
6. まとめ
クラスは「複雑なものを整理するための箱」です。最初は self の記述に違和感があるかもしれませんが、「クラスからインスタンスを作って、メソッドを呼ぶ」という一連の流れに慣れていくことで、大規模な開発もスムーズに行えるようになります!
PR