1. クラスの概要

Pythonは、Javaなどと同じオブジェクト指向プログラミングが可能です。
オブジェクト指向プログラミングで重要な概念の一つである「クラス」について説明します。

そもそもクラスとは何かと言うと、何か「モノ」を作るための「設計図」や「型」の様なものです。
設計図であるクラスには、属性(プロパティ)操作(メソッド)を定義します。
作成したクラスという設計図を元にして、実際に作った「モノ」をインスタンスと言います。

2. クラスの定義

今回は「人間」というクラスを定義する方法について考えていきます。

まず、「人間」というクラスを定義するにあたって、「人間」というものを表すにはどんな情報が必要なのかを考えます。
例えば、次の様な情報が考えられます。

「人間」を表すのに必要な情報。
・名前
・年齢

上記の「名前」や「年齢」が「属性(プロパティ)」と呼ばれるものになります。
この情報を元に、クラスを作成してみましょう。

class Person: # 人間クラスの定義
    #コンストラクタ。クラスがもつ属性の定義と初期化を行う。
    def __init__(self,name,age):
        self.name = name
        self.age = age

Pythonでは、クラスを作成する際に「class クラス名」で定義をします。
クラスに属性がある場合は、コンストラクタと呼ばれるメソッドで属性の定義と初期化を行います。
属性の定義というのは、「このクラスはこんな属性を持っていますよ」と宣言することです。
初期化と言うのは、そのクラスが持っている属性に最初の値を設定する作業のことです。
コンストラクタはクラスの中で一番最初に呼ばれるメソッドになります。

3. インスタンスの作成

前項でクラスの定義が一旦完成しました。
このクラスを使って、実際に「人間」という「インスタンス(実体)」を作ってみます。

person1 = Person('Yamada',24) # インスタンスの作成
print(person1.name) # 名前を表示
Yamada

クラスを使って人間のインスタンスを作る際に、クラスに定義されている属性である名前と年齢に値を設定する必要があります。
今回は「名前はYamada、年齢は24」という情報をPersonクラスに与えました。
Personクラスは、この情報を元にコンストラクタを呼び出し、人間を一人作ります。
このように、名前と年齢をそれぞれ指定することで、複数の人間を作成することもできます。

person2 = Person('Suzuki',19) # 名前はSuzukiで年齢は19才の人間を作成。
person3 = Person('Tanaka',40) # 名前はTanakaで年齢は40才の人間を作成。
print(person2.name)
print(person3.name)
 Suzuki
Tanaka

Personクラスは「人間とはどういうものか」を定義するものであって、人間そのものではありません。
Personクラスという設計図を元にして作った「インスタンス」が人間そのものになります。
実際のプログラムでは、クラスではなく、クラスを元にして作ったインスタンスに対して、様々な処理を行います。
この辺りのお話は、クラスに定義する操作(メソッド)の話を合わせて、別の記事で詳しく解説します。

弊社主催のPython基礎研修では、基礎文法を始め、Python未経験の方でもわかりやすいカリキュラムでPythonの基礎をマスターできます。
講座は随時開催しておりますので、ご興味のある方は是非お気軽にお問い合わせください。

ライトハウスラボ株式会社