見出し画像

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}.')


デバッガーの詳しい使い方は以下



この記事が気に入ったらサポートをしてみませんか?