みんなの Python 2-3 純粋オブジェクト指向言語としての Python (後半)

みんなのPython

みんなのPython

今日は 2-3 「純粋オブジェクト指向言語としての Python」の後半を読みました。

  • Python のクラスには「旧スタイルクラス」と「新スタイルクラス」があるらしい。新スタイルクラスは組み込み型か object を継承する。何も継承しないと「旧スタイルクラス」になる
  • Python にはビルトイン、モジュール(グローバル)、ローカル(関数内)のスコープがある。関数内からはモジュールスコープの名前が見える
  • global文を使って変数をグローバルスコープに映せる
  • 関数は入れ子にできる
  • インスタンスオブジェクトのアトリビュートにそのクラスのアトリビュートと同名のものを作ると遮蔽されてしまう
  • 演算子は特殊メソッドを実装することで対応できる('+'なら __add__() を定義すればよい、等)
  • __getattr__() は存在しないアトリビュートが参照された時に呼ばれるメソッド。Ruby の method_missing みたいなものですね。また新スタイルクラスでは __getattribute__() が利用できて、こちらはアトリビュートを参照する時に常に呼ばれる


この章でここまでに出てきた疑問点(演算子の再定義はどうするの、スライスは?とか)がかなり解消されてすっきりしました。