Python のすべてはオブジェクトですが、同時に Python はマルチパラダイム言語 (マルチパラダイム) でもあり、オブジェクト指向でプログラムを作成できるだけでなく、同じ方法でプログラムを作成することもできます。プロセス指向の関数 (関数型、宣言型などもありますが、まだ詳しくは説明しません)。 Python のマルチパラダイムは、Python オブジェクトの特別なメソッドに依存しています。
特別なメソッド名の前後には 2 つのアンダースコアが続きます。次の例でわかるように、マジック メソッドとも呼ばれる特別なメソッドは、Python の構文と式の多くを定義します。特別なメソッドがオブジェクトに定義されている場合、Python はそれらのメソッドにも「特別な扱い」を与えます。たとえば、 __init__() メソッドを定義するクラスは、オブジェクトの作成時に __init__() メソッドの操作を自動的に実行します。
(dir() を使用すると、オブジェクトが所有する特別なメソッド (dir(1) など) を表示できます)
オペレーター
Python の演算子は、オブジェクトの特別なメソッドを呼び出すことによって実装されます。例:
次の操作を試して効果を確認し、それに対応する演算子を考えてください
組み込み関数
演算子と同様に、多くの組み込み関数もオブジェクトを呼び出すための特別なメソッドです。たとえば
テーブル要素の参照
以下はテーブル要素を参照する一般的な方法です
関数
Python では関数もオブジェクトの一種であるとすでに述べました。実際、 __call__() 特殊メソッドを持つオブジェクトはすべて関数として扱われます。たとえば、次の例:
print(add(2))
map(add, [2, 4, 5]) # 関数オブジェクトを渡す
add は、SampleMore クラスのオブジェクトです。呼び出されると、add は 5 を加算する操作を実行します。 add は関数オブジェクトとして map() 関数に渡すこともできます。
組み込みオブジェクト (整数、テーブル、文字列など) については、それらに必要な特別なメソッドが Python で用意されています。ユーザー定義オブジェクトは、特別なメソッドを追加することでカスタム構文を実装することもできます。特別なメソッドは Python の最下層に比較的近く、多くの Python 関数の実装は特別なメソッドに依存しています。後でさらに例を見ていきます。 Python の構文の多くは、オブジェクト指向モデルのカプセル化に基づいています。オブジェクト モデルは Python のスケルトンであり、強力な火力を備えたフル機能のマルハナバチです。ただし、Python はより簡潔な構文も提供しており、さまざまなプログラミング形式を使用できるため、必要に応じてオブジェクト指向インターフェイスの一部を隠すことができます。これまで見てきたように、カマロ スポーツカーは、その堂々たる武器を隠し、人間が使いやすいドアとシートを備えています。