工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python Debugger:デバッグ スキルを簡単に改善

私たちの多くにとって、Python コードのデバッグは、結果的に print ステートメントを追加し、出力に基づいて何が起こっているかを判断しようとします。理想的ではありませんが、何らかの理由で、人々は Python デバッガーに触れたくないだけです。

目次

print を使用してコードをデバッグする

あなたが print を使用している場合 デバッグのために、私はあなたを判断していません . Pythonを学ぶのは難しいです。プログラミングは難しい。人生は難しいです。すでに苦労している場合、さらに別のことを学ぶのは面倒に思えることを理解しています.そして、その print ステートメントをコードに追加する…簡単です。ちょっとした告白:私もいつもそうしています。一部の人が考えるほど悪くはありません。

そうは言っても、コードに print ステートメントを追加するのと同じくらい簡単なちょっとしたトリックをお教えします。ただし、このトリックにより無限のデバッグ機能が得られ、必要に応じて世界を征服することができます。

Python デバッガー ブレークポイントの設定

コードを適切にデバッグするのに IDE は必要ありません。このトリックは、最も単純なエディターでも、Jupyter Notebook でも常に機能します。

秘訣は次のとおりです。命令 breakpoint() を使用して、いわゆるブレークポイントを設定します。 .使用しているエディターや IDE に関係なく、コード内の厄介な print ステートメントを通常挿入する場所に挿入できます。

では、そうするとどうなるでしょうか。確認してみましょう!以下のような簡単なプログラムを作成してください:

def add_two(x):
    return x + 2
for i in range(1, 10):
    a = add_two(i)
    breakpoint()
    print(a)

これを実行すると、REPL、コマンドライン、または IDE のいずれで実行しても、PDB と呼ばれる Python デバッガーにドロップされます。しかし、今は何ですか?

Python デバッガーの使用

上記の小さなプログラムを開始すると、次のようになります。

$ python3 breakpointing.py
> /home/erik/breakpointing.py(7)<module>()
-> print(a)
(Pdb)_

ここで確認すべき点がいくつかあります:

Python デバッガーは、REPL と同様に、実際には完全に機能する Python シェルです。

この時点で、現在の環境を調べることができます。 a の値を見てみましょう 今です:

(Pdb) print(a)
3
(Pdb) print(i)
1

print の代わりに、次のように pdb 固有のコマンド p を使用することもできます:

(Pdb) p a
3
(Pdb_ p i
1

次の行を実行しています

では、次のコード行を実行したい場合はどうすればよいでしょうか? 2 つのオプションがあります:

これをより明確にするには:step 喜んで関数呼び出しに入り、その関数内でブレークします。対照的に、next 戻るまで関数を実行し、次の行で中断します。

他のデバッガーや IDE でも、これを「ステップイン」(ステップの代わり) および「ステップオーバー」(次の代わり) と呼びます。

では、これら 2 つを使用してみましょう:

$ python3 breakpointing.py
-> print(a)
(Pdb) s
3
-> for i in range(1, 10):
(Pdb) s
-> a = add_two(i)
(Pdb) n
-> breakpoint()
(Pdb) n
-> print(a)
(Pdb) n
4
-> for i in range(1, 10):
(Pdb) s
-> a = add_two(i)
(Pdb) s
--Call--
-> def add_two(x):
(Pdb) s
-> return x + 2
(Pdb) s
--Return--
5
-> return x + 2
(Pdb) s
-> breakpoint()
(Pdb)

ご覧のとおり、最初に add_two への呼び出しをステップ オーバーします。 n で . 2 回目は、s で関数にステップ インします。 .

Python デバッガ コマンド

自分で試すことができるコマンドは他にもあります。すべてをリストするのではなく、最も役立つものだけをリストします:

完全なドキュメントについては、すべてのコマンドが一覧表示されている Python デバッガー ページにアクセスしてください。

学び続ける

これは非常に便利ですが、IDE が提供するデバッガーに飛び込む価値があります。あなたが VSCode ユーザーなら、VSCode で Python コードをデバッグする方法に関するチュートリアルを書きました。


Python

  1. Python の入力、出力、およびインポート
  2. メンテナンスプロセスを最適化して効率を向上させる
  3. Python Print() ステートメント:例を使用して印刷する方法
  4. Python 文字列:置換、結合、分割、反転、大文字と小文字
  5. Python time.sleep():コードに遅延を追加する (例)
  6. Python New Line:Python で改行なしで印刷する方法
  7. 接続された艦隊はあなたの収益を改善します
  8. プロトタイプが製造プロセスをどのように改善するか
  9. 板金部品を改善する5つの方法
  10. 機器のメンテナンス計画を改善するための3つのヒント
  11. ヒントと考慮事項:PCB 設計スキルを向上させる方法を学ぶ