Python実装のメモ
未熟な自分がPythonでのプログラミングをする中で学んだ事をメモります。
一覧
- repr関数はインタプリタで読めるような表現にするためのもの
- クラスはobjectを継承させてNew-Styleで実装する
- 呼び出し可能かをcallable関数でチェックする
repr関数はインタプリタで読めるような表現にするためのもの
大雑把には、str関数と同じようなものと覚えておけばいいのかもしれません。ただし、いくつか動作には違いがあるようです。
この関数は、Djangoの500エラー発生時のリクエスト出力内容を調べている際に発見した関数です。Django内部では、requestオブジェクトをrepr関数で文字列化してメール本文に出力していました。
repr関数の説明に関しては、Pythonのリファレンスの"http://www.python.jp/doc/2.4/lib/built-in-funcs.html"と"http://www.python.jp/doc/2.5/tut/node9.html"に記載がありました。
クラスはobjectを継承させてNew-Styleで実装する
クラスは、New-Styleで実装しておかないと後で地雷になりそうです。(object)を付けてNew-Styleにしておきましょう。ドキュメント:New-style Classes | Python.org
- propertyを使用するために必要です。
- callableの挙動を制御するために必要です。
- "callable - odz buffer"を参考にさせてもらいました。
呼び出し可能かをcallable関数でチェックする
オブジェクトが呼び出し可能なオブジェクトかどうかを調べる際にcallable関数を使用します。Djangoのdjango.views.simple.direct_to_templateを見ていて気になったので調べました。余談ですが、クラスに__call__が実装されていると、インスタンスが呼び出し可能になったりします。
ドキュメント:http://www.python.jp/doc/2.5/lib/built-in-funcs.html