ホームページ  >  記事  >  バックエンド開発  >  Python デバッグ: ロギングと PDB (分析例 2)

Python デバッグ: ロギングと PDB (分析例 2)

乌拉乌拉~
乌拉乌拉~オリジナル
2018-08-23 13:38:081369ブラウズ

前回の記事では、Python でデバッグが必要な理由を学び、Python のデバッグ方法を 2 つ紹介しましたが、デバッグ方法は 1 つの記事では説明しきれないため、この記事で説明します。残りの 2 つのデバッグ方法。これらのデバッグ方法がお役に立ち、Python の学習をより早く進めるのに役立つことを願っています。

logging

3 番目の方法は、print() を logging に置き換えることです。assert と比較して、logging はエラーをスローせず、ファイルに出力できます。 :

import logging
s = '0'
n = int(s)
logging.info('n = %d' % n)
print(10 / n)

logging.info() はテキストを出力できます。実行しても、ZeroDivisionError 以外の情報は見つかりません。どうしたの?

心配しないでください。ログをインポートした後に構成の行を追加して、もう一度お試しください:

import logging
logging.basicConfig(level=logging.INFO)

出力を参照してください:

$ python err.py
INFO:root:n = 0
Traceback (most recent call last):
  File "err.py", line 8, in <module>
    print(10 / n)
ZeroDivisionError: division by zero

これはログの利点であり、これにより次のことが可能になります。レコードを指定します。情報のレベルには、デバッグ、情報、警告、エラーなどが含まれます。level=INFO を指定すると、logging.debug は機能しません。同様に、level=WARNING を指定すると、debug と info が機能しなくなります。このようにして、さまざまなレベルの情報を削除せずに安全に出力でき、最終的にどのレベルの情報を出力するかを制御できます。

ロギングのもう 1 つの利点は、簡単な構成で、ステートメントをコンソールやファイルなどの異なる場所に同時に出力できることです。

pdb

4 番目の方法は、Python デバッガー pdb を起動し、プログラムをシングルステップ モードで実行します。いつでも実行ステータスを確認できます。まずプログラム

# err.py
s = &#39;0&#39;
n = int(s)
print(10 / n)

を準備してから開始します:

$ python -m pdb err.py
> /Users/michael/Github/learn-python3/samples/debug/err.py(2)<module>()
-> s = &#39;0&#39;

パラメーター -m pdb で開始した後、pdb は次に実行されるコードを見つけます -> s = ' 0' 。コードを表示するには、コマンド l を入力します:

 (Pdb) l
  1     # err.py
  2  -> s = &#39;0&#39;
  3     n = int(s)
  4     print(10 / n)

コマンド n を入力して、コードをステップ実行します:

(Pdb) n
> /Users/michael/Github/learn-python3/samples/debug/err.py(3)<module>()
-> n = int(s)
(Pdb) n
> /Users/michael/Github/learn-python3/samples/debug/err.py(4)<module>()
-> print(10 / n)

コマンド p 変数名を入力すると、いつでも変数を表示できます:

(Pdb) p s
&#39;0&#39;
(Pdb) p n
0

コマンド q を入力してデバッグを終了し、プログラムを終了します。

(Pdb) q

(pdb を使用してコマンド ラインでデバッグするこの方法は理論的には万能ですが、実際には非常に面倒です)

今回の記事は以上です この記事では、記事に記載されている内容のうち、Python デバッグ に関する関連知識を中心に紹介していますので、上記の内容を理解するために活用していただければ幸いです。この記事で説明したことがあなたのお役に立ち、Python の学習が容易になることを願っています。

関連知識の詳細については、php 中国語 Web サイトの Python チュートリアル 列を参照してください。

以上がPython デバッグ: ロギングと PDB (分析例 2)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。