みんなの Python 2-3 純粋オブジェクト指向言語としての Python (前半)
- 作者: 柴田淳
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/08/22
- メディア: 単行本
- 購入: 11人 クリック: 624回
- この商品を含むブログ (180件) を見る
今日は 2-3 「純粋オブジェクト指向言語としての Python」の前半読みました。
なんと昨日読んだ 2-2 のオブジェクト指向は純粋じゃなかったんですね!?……すみません、つい茶化してしまいましたが、章立てをあらかじめ確認していなかったので「じゃあ 2-2 のオブジェクト指向はなんだったんだ」とか「純粋オブジェクト指向ってなに?」とか見出しを見ただけでもやもやしてしまったのです。
- 要するにメソッドも関数がアトリビュートになってるようなもんだよと言っている
- ああ、それでメソッドの第1引数が常に明示的に self じゃないといけないのかーなるほど
- 組み込み関数 dir() でインスタンスオブジェクトのアトリビュート一覧を文字列のリストとして取得できる。やっとリフレクションっぽいのが出てきた
- 組み込み関数 type() で型/クラスが取得できる
- 組み込み型とクラスの関係には歴史的経緯から微妙に違いがあるらしい
- is_a? のようにインスタンスがクラスに属するかどうかは組み込み関数 isinstance() で調べる
- メソッドとは「呼び出し可能オブジェクト」であり、__call__ というアトリビュートを持ってる。つまり __call__ で呼び出せるってことですね
- 構文にたよらず組み込み関数 setattr() でアトリビュートを設定できる
- __slot__ アトリビュートでアトリビュートの追加を制限できる
時間切れのためここまで。メタプログラミングのための基礎知識が出てきはじめて盛り上がってきました。