Python-もっとオブジェクト指向

イリヤ・ドルマン2>
コードを詩的に扱いなさい、そしてギリギリまで磨きなさい。
わからなくなったら
すべてのオブジェクトはクラスのインスタンスである。
クラスから作られるオブジェクトをインスタンスと呼ぶ。
オブジェクトと言った時はインスタンスのことを指す。
[○○クラスのインスタンス」と言ったり、「インスタンスオブジェクト」と言ったり、単に「オブジェクト」と言ったりしますが、これらはすべて同じ意味で使われます。
PYthonは、クラスそのものもオブジェクトとして扱えます。その時、単にオブジェクトと呼ぶと紛らわしいので「クラスオブジェクト」と明治的に呼びます。
PYthonでは、クラスはtypeクラスから作られるオブジェクトです
クラス変数とインスタンス変数2>
インスタンス変数:これまでクラスで使ってきたself.[変数名]=[値]のように書くのはインスタンス変数です。インスタンスオブジェクトに属します。
クラス変数:クラス定義の中に通常の変数のように定義します。
このクラス変数にたいては、クラスオブジェクトから参照できますし、このクラスから作られたインスタンスオブジェクトからも参照できます
クラス変数へのアクセスは、インスタンス変数へのアクセスと同じようにできます(self.を変数名の前に付けましょう)。
クラス変数が便利なのは、そのクラスから作られたインスタンスオブジェクトのどこからでも利用できるデータとして使えます。
特殊メソッド2>
Pythonのすべてのクラスは、objectクラスを継承します。その為objectから継承したメソッドが使えます。
演算子の対象となるオブジェクト(被演算子)は、演算子が式を評価するのに使用するメソッドを持つ必要があります。
たとえば、2 + 2 という式では、被演算子となるどちらの整数値も特殊メソッド__add__を持っていて、Pythonは足し算を評価するためにこのメソッドを呼びます。つまり、__add__メソッドをクラスにもたせれば、そのオブジェクトを足し算の演算子で計算できるのです。