クラス
クラス
クラスを厳密に説明するのは難しい上に、説明される側も初めてである概念であると、一度で理解することは難しいというのが一般的です。そのためじっくりお教えするということは避け、ここではその簡単な紹介をするに留めようと思います。
クラスとは、関連のある関数や属性、メソッドをグループにまとめたものです。以下に具体例として、有名なクラスの定義を示します。
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_name
がAcademian
、last_name
がnuts
、age
が30の人間がan
という変数に保存された。ここから属性として設定した値を取り出すことができる。「属性」とは関数やメソッドとは異なり、括弧を付ける必要がない。
an.first_name
'Academian'
an.age
30
誕生日を祝うメソッドを実行し再度、属性age
を確認します。
an.celebrate_birthday()
an.age
31
今後出てくる NumPy のndarray
や pandas のSeries
やDataFrame
はより複雑なクラスのオブジェクトであるが、その属性にアクセスしたり、そのメソッドを呼び出したりすることができるという点では基本的には同じような概念のものです。