クラス

クラス

クラスを厳密に説明するのは難しい上に、説明される側も初めてである概念であると、一度で理解することは難しいというのが一般的です。そのためじっくりお教えするということは避け、ここではその簡単な紹介をするに留めようと思います。

クラスとは、関連のある関数や属性、メソッドをグループにまとめたものです。以下に具体例として、有名なクラスの定義を示します。

class Person:
  def __init__(self, first_name, last_name, age):
    self.first_name = first_name
    self.last_name = last_name
    self.age = age
  
  def celebrate_birthday(self):
    self.age += 1

このクラスPersonは人を表していて、属性として名字と年齢を持っています。また誕生日お祝いの機能もついており、それにより年齢が一つ繰り上がります。

少しだけ詳細を説明します。 始めの__init__というメソッドは初期化用のメソッドで、クラスからオブジェクトが作成される際に1度だけ呼び出されます。引数のはじめのselfは自分自身のインスタンスを表しており、明示的に記載しているのはPythonの特徴といったところです。

実際にこのクラスを使ってみましょう。

an = Person('Academian', 'nuts', 30)

これで、first_nameAcademianlast_namenutsageが30の人間がanという変数に保存された。ここから属性として設定した値を取り出すことができる。「属性」とは関数やメソッドとは異なり、括弧を付ける必要がない。

an.first_name
'Academian'
an.age
30

誕生日を祝うメソッドを実行し再度、属性ageを確認します。

an.celebrate_birthday()
an.age
31

今後出てくる NumPy のndarrayや pandas のSeriesDataFrameはより複雑なクラスのオブジェクトであるが、その属性にアクセスしたり、そのメソッドを呼び出したりすることができるという点では基本的には同じような概念のものです。