python除錯方法

2021-08-08 17:57:35 字數 1063 閱讀 6833

最簡單print()

只是影響**美觀,而且需要在後面刪掉,比較麻煩

凡是用print來輔助檢視的地方,都可以用斷言(assert)來替代:

# err.py

deffoo

(s):

n = int(s)

assert n != 0, 'n is zero!'

return

10 / n

defmain

(): foo('0')

可以通過 -0 引數來關閉assert

$ python -o err.py

關閉以後相當於pass

# err.py

import logging

s = '0'

n = int(s)

logging.info('n = %d' % n)

print

10 / n

import logging

logging.basicconfig(level=logging.info)

另外 logging level分為 critical , error , warning , debug , info , notset

越右邊→_→資訊越多

運用pdb命令,用單步除錯等

使用gdb或者ipdb工具十分方便

如果只想看結論的話,我們的最佳實踐是在需要除錯的**中插入」import ipdb;ipdb.set_trace()」或者」import pudb;pudb.set_trace」即可

(摘自 知乎)

# err.py

import pdb

s = '0'

n = int(s)

pdb.set_trace() # 執行到這裡會自動暫停

print

10 / n

Python 除錯方法

from 這幾天一直在查乙個線上程式 hang 住的問題.這個程式總是在執行50分鐘後 hang 住,通過以下的一些除錯手段,發現是打日誌的時候因為 buffer 滿被 block 了.python 日誌是預設打到 stderr 的,無論日誌級別.而我這個程式是被另乙個程式調起的,父程序沒有接收子程...

python 除錯方法

一 使用pdb 二 使用gdb需首先配置gdb pythin支援,步驟如下 1 修改python 2.6 misc gdbinit,將 while i f f nlocals修改為 while i f f code co nlocals2 在檔案 gdbinit中,加入如下內容 source pyt...

python除錯方法

之前除錯python程式都是用print引數,感覺有點弱爆啊,最近發現python也有類似c語言gdb的工具pdb,記錄下pdb的使用方法和心得。先找了段簡單的測試程式 複製 from ftplib import ftp import sys import socket import pdb def...