Pythonのクラスを学習していきましょう。
クラスを定義すると、クラス内に複数のメソッドや関数を定義することができます。
メソッドや関数を乱雑に管理すると、処理内容がわかりにくくなり、可読性も低くなってしまいます。
クラスを習得することで、規模感のある開発も可能になります。
クラスとは
クラスとは、複数のメソッドや関数をクラス内にまとめて管理する箱のようなものです。
処理内容の似ている関数などをクラス内にまとめて管理することで、入り組みやすいコードをうまくまとめることができます。
Pythonのクラスの使い方
それでは早速Pythonのクラスの使い方を解説していきます。
最初に基本的な使い方を説明した後、クラスのコーディングで必要な内容を解説していきます。
クラスの基本的な使い方
クラスは文頭でclass クラス名:と宣言します。クラス名の後に:を入れて区切ります。:の後にインデントを入れてdef関数などを定義します。
クラスの初期化
クラスの初期化についてですが、初期化とはクラスを定義していく際の前段階の処理手順のようなものです。
def __init__
という関数を使って初期化の宣言をします。
関数内にはselfという引数がセットされますが、これはクラス内の自身の引数を呼び出すための定義です。
引数の数に関わらず、selfは第一引数にセットします。
実際にやってみよう
数値を取得して、それを出力するという一連の作業をclass内で初期化を使って定義します。
class MyClass: def __init__(self, integer): self.value = integer def print_value(self): print(self.value)
コンパイルがしっかりと通っています。
インスタンスメソッドの基本
インスタンスとは、クラスという母体から生成される個体のようなものです。
インスタンス化するときは、クラス名()を変数に代入します。その変数はクラス内の関数を実行することができ、.関数名()で実行します。
実際にやってみよう
それでは先ほどのクラスの初期化のコードに続けて、引数のintegerに数値を代入するインスタンスメソッドを定義します。
class MyClass: def __init__(self, integer): self.value = integer def print_value(self): print(self.value) <p>if __name__ == “__main__”: i = MyClass(3) i.print_value()
出力結果は以下のようになります。
クラスの継承について
クラスの継承とは、クラスが複数あり、新しく作成したクラスで別のクラスの関数やメソッドを引き継ぎたい時に行うものです。
参照される元の側のクラスを元クラスや親クラスといい、新しく継承して生成する側のクラスを子クラスといいます。
子クラスを作るには、親クラスから枝分かれしていく関係にあるため、性質を受け継ぐものである必要があります。
実際にやってみよう
それでは、Carクラスを定義して、それを親クラスとするSportsCarクラスを定義してみましょう。
Carは一般的な車を表現するクラスで、SportsCarはCarの性質を受け継ぎ、その中でも具体的なスポーツカーという性質を持つクラスです。
class Car: def __init__(self, name): self.name = name def print_name(self): print(self.name) class SportsCar(Car): def __init(self, name, max_speed): Car.__init__(self, name) self.max_speed = max_speed car1 = SportsCar(“スカイライン, “250km/h”) print(car1.name) print(car1.max_speed)
出力結果は以下のようになります。
クラスCarの性質を継承したまま、最高速度という引数を新しく付け加えたSportsCarクラスができました。
クラス名、関数名のお作法
クラス名は基本的にその処理内容を示すわかりやすいクラス名を選択すると良いでしょう。
また長すぎるのは好ましくありません。Pythonのクラス名は先頭を大文字にします。
関数名についても、冗長なものは適切でなく、処理内容を表現する英単語を使うことが望ましいです。
関数名は全て小文字で表記します。複数の単語を並べたい時には、アンダースコア_を使って単語を繋げて表記します。
まとめ
Pythonのクラスについて解説しました。
冒頭で書いた通り、クラスを習得するとWebサービスなどの規模感のある開発が可能になります。
「Pythonで何かサービスを作りたい」という人は学習必須の内容になります。
まずは基本をしっかり覚えていきましょう。