Pythonデバッガー ~pdbとbreakpoint~[メモ🐈]
途中で値を確認したい時に、以下のように標準モジュールのpdbを下記のように都度インポートしていた。
def odd_even(num):
if num % 2 == 1:
return 'odd'
else:
return 'even'
if __name__ == '__main__':
for num in range(10):
import pdb; pdb.set_trace()
result = odd_even(num)
print(f'{num} is {result}.')
#実行結果
/Users/neko/Desktop/demo.py(10)<module>()
-> result = odd_even(num)
(Pdb) p num
0
(Pdb) s
--Call--
> /Users/neko/Desktop/demo.py(1)odd_even()
-> def odd_even(num):
(Pdb) s
> /Users/neko/Desktop/demo.py(2)odd_even()
-> if num % 2 == 1:
(Pdb) p num
0
(Pdb) s
> /Users/neko/Desktop/demo.py(5)odd_even()
-> return 'even'
(Pdb) s
--Return--
> /Users/neko/Desktop/demo.py(5)odd_even()->'even'
-> return 'even'
(Pdb) s
> /Users/neko/Desktop/demo.py(11)<module>()
-> print(f'{num} is {result}.')
(Pdb) s
0 is even.
python3.7以降の組み込み関数にbreakpoint()が導入され、わざわざ明示的にインポートしなくても済むようになった🎉
実行結果は上記と同じ
def odd_even(num):
if num % 2 == 1:
return 'odd'
else:
return 'even'
if __name__ == '__main__':
for num in range(10):
breakpoint() #import pdb; pdb.set_trace()
result = odd_even(num)
print(f'{num} is {result}.')
デバッガーの詳しい使い方は以下