Python PyCharm如何進行斷點調(diào)試
編輯器不等于IDE(集成開發(fā)環(huán)境),開發(fā)python程序,不是只有一種print()打印輸出調(diào)試。
術業(yè)有專攻,于人如此,于一個軟件也是如此。讓專業(yè)的軟件做專業(yè)的事。
以上兩點得出的結論:PyCharm
我們以如下的一種常見錯誤,來演示如何通過PyCharm斷點追蹤的方式發(fā)現(xiàn)程序中的錯誤:
def foo(bar=[]):
bar.append('bar')
return bar
>>>foo()
['bar']
>>>foo()
['bar', 'bar']
>>>foo()
['bar', 'bar', 'bar']
這里存在一個常見的錯誤就是誤以為:函數(shù)在每次不提供可選形參時將參數(shù)設置為默認值,也就是本例中的[],一個空的list。
這里我們便可以通斷點調(diào)試的方式進行追蹤,在每次函數(shù)調(diào)用(不顯示傳遞形參)時,觀察形參值的變化。
如圖所示為:
下圖是以這段為例,來演示如何發(fā)現(xiàn)程序中的bug:

解決方案:
def foo(bar=None):
if not bar:
bar = []
bar.append('baz')
return bar
>>>foo()
['baz']
>>>foo()
['baz']
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python閉包之返回函數(shù)的函數(shù)用法示例
這篇文章主要介紹了 Python閉包之返回函數(shù)的函數(shù)用法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
Python基礎進階之海量表情包多線程爬蟲功能的實現(xiàn)
這篇文章主要介紹了Python基礎進階之海量表情包多線程爬蟲,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
利用Tkinter(python3.6)實現(xiàn)一個簡單計算器
這篇文章主要給大家介紹了關于利用Tkinter(python3.6)實現(xiàn)一個簡單計算器的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-12-12
利用Anaconda創(chuàng)建虛擬環(huán)境的全過程
因為多次重新配置環(huán)境,這些命令每次都要用,每次都忘記,需要重新搜索,所以記錄這一過程,下面這篇文章主要給大家介紹了關于利用Anaconda創(chuàng)建虛擬環(huán)境的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-07-07

