4章オブジェクト指向のPython

Pythonはオブジェクト指向(OO)のプログラミング言語である。ただし、他のオブジェクト指向言語とは異なり、Pythonではオブジェクト指向のパラダイムだけを使うことは強制されない。モジュールと関数を使う手続き型のプログラミングもサポートされているため、プログラムの部分ごとに最適なパラダイムを選択できる。オブジェクト指向のパラダイムは、状態(データ)と振る舞い(コード)をまとめて、便利な機能の詰め合わせにしたい場合に役立つ。Pythonでは、継承(inheritance)や特殊メソッド(special method)など、本章で説明する特別なメカニズムもサポートされている。オブジェクト指向プログラミングのこうした利点†1が必要なければ、モジュールと関数を使うより単純な手続き型のアプローチのほうが適しているかもしれない。Pythonでは、これらのパラダイムを自由に組み合わせることができる。

本章では、OOの中核的な概念に加えて、抽象基底クラスデコレータメタクラスも取り上げる。

4.1 クラスとインスタンス

C++やJavaのような他のOO言語でのオブジェクト指向プログラミングに慣れているとしたら、おそらくクラスとインスタンスのことはよく知っているはずだ。クラスとはユーザー定義型のことであり、インスタンス(その型のオブジェクト)を構築するためにインスタンス化する。Pythonでは、これをそのクラスとインスタンスオブジェクトを通じてサポートしている。

4.1.1 Pythonのクラス

クラスとは、次の特性を持つPythonオブジェクトのことである。

  • クラスオブジェクトは関数を呼び出すのと同じように呼び出すことができる。呼び出しはインスタンス化 ...

Get Pythonクイックリファレンス 第4版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.