Hatena::ブログ(Diary)

”たゆたえども沈まず”で

2010-10-02

Python実装のメモ

未熟な自分がPythonでのプログラミングをする中で学んだ事をメモります。

一覧

  • repr関数インタプリタで読めるような表現にするためのもの
  • クラスはobjectを継承させてNew-Styleで実装する
  • 呼び出し可能かをcallable関数でチェックする

repr関数はインタプリタで読めるような表現にするためのもの

大雑把には、str関数と同じようなものと覚えておけばいいのかもしれません。ただし、いくつか動作には違いがあるようです。

この関数は、Djangoの500エラー発生時のリクエスト出力内容を調べている際に発見した関数です。Django内部では、requestオブジェクトをrepr関数で文字列化してメール本文に出力していました。

repr関数の説明に関しては、Pythonのリファレンスの"404 Not Found"と"404 Not Found"に記載がありました。

クラスはobjectを継承させてNew-Styleで実装する

クラスは、New-Styleで実装しておかないと後で地雷になりそうです。(object)を付けてNew-Styleにしておきましょう。ドキュメント:no title

  • propertyを使用するために必要です。
    • "no title"を参考にさせてもらいました。
  • callableの挙動を制御するために必要です。

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

オブジェクトが呼び出し可能なオブジェクトかどうかを調べる際にcallable関数を使用します。Djangoのdjango.views.simple.direct_to_templateを見ていて気になったので調べました。余談ですが、クラスに__call__が実装されていると、インスタンスが呼び出し可能になったりします。

ドキュメント:404 Not Found

トラックバック - http://d.hatena.ne.jp/tayutaedomo/20101002/1285998460