以下の文を日本語で言い換えてください(オプションは一つだけで結構です):Pythonのbreakpoint()

Python 3.7で導入された新しい組み込み関数であるPythonのbreakpoint()は、Pythonコードのデバッグは常に苦痛なプロセスでした。実際のコードとデバッグモジュールのコードの間には密接な結びつきがあるためです。たとえば、pdbデバッガを使用している場合、プログラムコードでpdb.set_trace()を呼び出さなければなりません。他のデバッガを使用したい場合、例えばweb-pdbを使用する場合は、PDBに関連するすべてのコードを削除し、web_pdb.set_trace()メソッドを追加する必要があります。これにより、Pythonデバッガを使用する際に莫大なオーバーヘッドが発生し、Pythonコードのデバッグとメンテナンスが困難になります。そのため、Python 3.7ではloosely coupledなデバッグコードの記述を可能にするbreakpoint()メソッドが導入されました。

Pythonのbreakpoint()を日本語で言い換えると:「Pythonの中断点()」

Pythonのbreakpoint()関数はsys.breakpointhook()関数を呼び出します。sys.breakpointhook()はデフォルトでpdb.set_trace()関数を呼び出します。したがって、最低限、breakpoint()を使用することでデバッガの使用が便利になります。pdbモジュールを別途インポートする必要がなくなるからです。breakpoint()関数の使用例を一つ見てみましょう。以下のコードが含まれたpython_breakpoint_examples.pyというPythonスクリプトがあります。

x = 10
y = 'Hi'
z = 'Hello'
print(y)

breakpoint()

print(z)

このスクリプトを実行すると、PDBデバッガーコンソールが開きます。

$python3.7 python_breakpoint_examples.py
Hi
> /Users/scdev/Documents/PycharmProjects/BasicPython/basic_examples/python_breakpoint_examples.py(8)()
-> print(z)
(Pdb) c
Hello
$
python breakpoint example

Pythonのbreakpoint()関数は、デバッグを停止させます。

Pythonのsys.breakpointhook()関数は、デバッガを設定するために環境変数PYTHONBREAKPOINTを使用します。未設定の場合、デフォルトのPDBデバッガが使用されます。もし「0」に設定されている場合、その関数は直ちに戻り、コードのデバッグは行われません。デバッグせずにコードを実行したい場合、非常に役立ちます。

$PYTHONBREAKPOINT=0 python3.7 python_breakpoint_examples.py
Hi
Hello
$
python breakpoint stop debugging

Pythonのbreakpoint()関数を使用して、デバッガーモジュールを変更する。

PYTHONBREAKPOINT環境変数を使用することで、breakpoint()関数によって呼び出されるデバッガメソッドを指定することができます。これは非常に便利です。なぜなら、コードを変更することなくデバッガモジュールを簡単に変更できるからです。例えば、web-pdbデバッガを使用したいとします。 PYTHONBREAKPOINT=web_pdb.set_traceを使用することで、簡単にプログラムに組み込むことができます。まず、web-pdbがインストールされていることを確認してください。pip3.7 install web-pdbコマンドを使用してインストールすることができます。

Web-PDBのドキュメントによると、Python 3.7で追加された新しいbreakpoint()関数と互換性があるとされています。

$PYTHONBREAKPOINT=web_pdb.set_trace python3.7 python_breakpoint_examples.py
Hi
2018-08-10 12:49:54,339: root - web_console:110 - CRITICAL - Web-PDB: starting web-server on scdev:5555...
python web-pdb debugger

要約記事

Pythonのbreakpoint()関数は、Pythonのデバッグ機能に非常に便利な追加です。これをデバッグに使用することをおすすめします。これにより、他のサードパーティのデバッガを簡単にフックできます。また、デバッガを無効にして通常通りプログラムを実行するオプションも簡単に提供します。

弊社のGitHubリポジトリから、Pythonのさらなる例をご覧いただけます。

参照: 公式ドキュメント

コメントを残す 0

Your email address will not be published. Required fields are marked *