実用的なPythonデバッグツール


一般的に、Pythonコードを作成するときに、なぜPythonコードが予想通りに実行されなかったのか、例えば実行中なのか、実行されていないのか、ローカル変数の値が何なのかを明らかにしたい場合は、PySnooperのデバッグツールを今日共有します.
PySnooperでは、デバッグする関数にアクセサリーを追加するだけで、正しいprint印刷を構築する必要はありません.また、どのコード行が実行されたのか、いつ実行されたのか、ローカル変数が変更されたのかなど、関数の詳細なログも表示されます.PySnooperは非常に簡単に使用でき、開発者は設定する必要がなく、膨大なコードライブラリで使用することができます.モディファイヤを追加し、ログ出力アドレスにパスを指定するだけで、パスを最初のパラメータに指定できます.
現在,PySnooperはGitHub上で1 w+個のStar,600+個のForkを得ている.GitHubアドレス:https://github.com/cool-RR/PySnooper例は、バイナリ・リストを返す関数です.@pysnooperを追加するだけです.snoop()アクセサリーでいいです:
import pysnooper
@pysnooper.snoop()
def number_to_bits(number):
if number:
bits = []
while number:
number, remainder = divmod(number, 2)
bits.insert(0, remainder)
return bits
else:
return [0]
number_to_bits(6)

出力は次のとおりです.
Starting var:.. number = 6
15:29:11.327032 call 4 def number_to_bits(number):
15:29:11.327032 line 5 if number:
15:29:11.327032 line 6 bits = []
New var:....... bits = []
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits = [0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
Modified var:.. number = 0
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 10 return bits
15:29:11.327032 return 10 return bits
Return value:.. [1, 1, 0]

プロパティstderrでは、指定したファイル:@pysnooper.snoop( /my/log/file.log )に選択を出力できます.一部の非局所変数の変数値を表示します.@pysnooper.snoop(variables=( foo.bar , self.whatever ))関数呼び出しの関数を表示するsnoop行:@pysnooper.snoop(depth=2)より多くの人工知能に関する資料を入手するには、V、手紙:hcgx 0904(備考「人工知能」)をクリックして「深さ学習&コンピュータ視覚精講」をクリックし、勉強を始めましょう.