タグ

ブックマーク / www.sakito.com (3)

  • Python 標準ロギングモジュール logging の使い方メモ

    概要 logging を利用してみる。 ドキュメント モジュールの使い方は、公式ドキュメント「logging — Logging facility for Python」に概要が書いてある。 また「Logging HOWTO」が具体的な使い方に関して書いてある。 使い方 以下が一番簡単な例。 #!/usr/bin/env python # -*- coding: utf-8 -*- import logging def main(): logging.warning('わーにんぐ') logging.info('いんふぉ') if __name__ == '__main__': main() 実行すると以下のようになる。これはデフォルトレベルが「WARNING」以上だから。 WARNING:root:わーにんぐ ログのレベルは以下のようになる。 レベル 関数 数値 概要 CRITICAL

  • Python で標準添付の Debuggerのpdb を利用してデバッグするメモ

    概要 pdb を利用してみる。 ドキュメント 公式ドキュメント「pdb — The Python Debugger」に概要が書いてある。 使い方 スクリプトを直接起動してデバッグする方法と、インタラクティブshell で起動する方法があるが、ここでは、スクリプトを起動してデバッグする方法で書く。 以下がデバッグするスクリプトのサンプル「even.py」。 自分の場合、スクリプトを直接デバッグすることがあまりなく、デバッグするのはライブラリとかをunittest経由でデバッグすることがが多いのでサンプルは unittest で書いている。 以下の例はクラス内の関数が偶数だけ返す所でバグがあり、奇数を返すようになっている。そんなに良い例ではないかも。 #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest class Samp

  • 紹介マニアどらふと版: Python の __new__ や __init__ はコンストラクタではない

    概要 結構 Python の「__new__」や「__init__」をコンストラクタと記述する人がいるが、厳密にはコンストラクタではない。 コンストラクタの定義 コンストラクタの定義は「Constructor (object-oriented programming) - Wikipedia, the free encyclopedia」や「コンストラクタ - Wikipedia」を見るのが良いかもしれない。 コンストラクタの定義は、厳密には以下だと思われる。 オブジェクトを生成する またオブジェクトの生成とは以下を示す。 allocation(メモリ割り当て) initialization(初期化) 「コンストラクタ」はオブジェクト生成のために呼ばれる物の事を指すので、全ての最初に呼ばれる物を指す。 「__new__」と「__init__」がコンストラクタでないことの証明 以下は「__

    pipehead
    pipehead 2012/10/25
    > 「コンストラクタ」はオブジェクト生成のために呼ばれる物の事を指すので、全ての最初に呼ばれる物を指す。
  • 1