デスクリプタを呼び出します。インスタンス束縛では、デスクリプタ呼び出しの優先順位はどのデスクリプタが定義されているかに依存します。任意の組合せを定義することができます。定義されない場合には、その属性にアクセスすると、そのオブジェクトのインスタンス辞書にその値がある場合を除けば、デスクリプタオブジェクト自身が返ってきます。両方とも定義しなければ、非データデスクリプタです。メソッドしかありません。定義したデータデスクリプタは、インスタンス辞書内で属性値が再定義されても、常にこの値をオーバーライドします。対照的に、非データデスクリプタの場合には、属性値はインスタンス側でオーバーライドされます。メソッドは、非データデスクリプタとして実装されています。その結果、インスタンスではメソッドを再定義したりオーバーライドできます。このことにより、個々のインスタンスが同じクラスの他のインスタンスと互いに異なる動作を獲得することができます。関数はデータデスクリプタとして実装されています。従って、インスタンスはあるプロパティの動作をオーバーライドすることができません。作成しないようにできます。使うのに比べて、節約できるメモリ空間はかなり大きいです。属性探索のスピードもかなり向上できます。object.__slots__¶このクラス変数には、インスタンスが用いる変数名を表す、文字列、イテラブル、または文字列のシーケンスを代入できます。自動的に生成されないようにします。属性は常に利用可能です。列挙されていない新たな変数をインスタンスに代入することはできません。変数名のシーケンスに追加してください。変数名のシーケンスに追加してください。しないと、デスクリプタによる代入をクラス属性が上書きしてしまうからです。宣言の作用は、それが定義されたクラスだけには留まりません。子クラスでも利用可能です。アクセスできなくなります。これにより、プログラムの趣意が不定になってしまいます。将来は、この問題を避けるために何らかのチェックが追加されるかもしれません。組み込み型から派生したクラスでは動作しません。文字列でない反復可能オブジェクトを代入することができます。将来、辞書の各キーに相当する値に何らかの特殊な意味が割り当てられるかもしれません。持っているときのみ動作します。