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

呼び出し可能かをcallable関数でチェックする

オブジェクトが呼び出し可能なオブジェクトかどうかを調べる際にcallable関数を使用します。Djangodjango.views.simple.direct_to_templateを見ていて気になったので調べました。余談ですが、クラスに__call__が実装されていると、インスタンスが呼び出し可能になったりします。
ドキュメント:http://www.python.jp/doc/2.5/lib/built-in-funcs.html