Python では、特定の性質を持つオブジェクトが実装すべき一連のメソッドのことをプロトコルと呼びます (代表的なプロトコルとして イテレータプロトコル などがあります)。ディスクリプタはそのようなプロトコルの一種です。 プロパティや、メソッド(静的メソッド、クラスメソッド、インスタンスメソッド)、 super など、 Python の基本的な機能の背後にはこのディスクリプタが使われています。また、ディスクリプタは汎用的なプロトコルなので、ユーザが定義することも可能です。 ディスクリプタには大きく分けて2つの種類があります。 データディスクリプタ __get__ と __set__ の両方を定義しているディスクリプタ 非データディスクリプタ __get__ だけを定義しているディスクリプタ データディスクリプタは通常の属性アクセスと同じような振る舞いをするもので、プロパティがその典型です。
