Pythonのクラス定義

ここではオブジェクト指向プログラミングで重要となるクラスを定義する方法について説明します。

クラスを定義する

クラスは変数(クラス変数及びインスタンス変数)とメソッドをもつことができます。インスタンス変数は、クラスから生成されたオブジェクトごとに異なる値を持つことができます。クラス変数は生成されたどのオブジェクトからも共通に使える変数です。また、メソッドとはオブジェクトに紐づけられた関数です。

クラスを定義する書式は次のようになります。:の後にインデントをつけてクラス定義の範囲を指定します。

クラス文の中で定義された関数がメソッドです。__で始まり__で終わるメソッドは特殊なメソッドです。__init__()はオブジェクトを生成する際に自動的に呼ばれるメソッドで、オブジェクトの初期化を行うコンストラクタの役割を果たします。

引数selfには生成されるオブジェクトが渡され、オブジェクトを生成するタイミングでインスタンス変数を初期化することができます。

クラス定義の例

次のプログラムはCatクラスを定義しています。

次のように、定義したクラスからオブジェクトを複数作り出すことができます。ここでは、"Tama"や"3"などをコンストラクタに渡しています。

インスタンス変数には、オブジェクト名.変数名でアクセスします。

インスタンス変数は各オブジェクトによって値が異なることがありえますが、どのオブジェクトからでも共通に使いたい変数はクラス変数として定義します。上記では、変数strはクラス変数として宣言されているので、次のようにどのオブジェクトからでも共通して使うことができます。

最後に、メソッドを呼び出した例です。メソッドの呼び出しには、オブジェクト名.メソッド名を使います。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて

UX MILKのディレクター募集