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

解決方案:
def foo(bar=None):
if not bar:
bar = []
bar.append('baz')
return bar
>>>foo()
['baz']
>>>foo()
['baz']
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 使用Python實(shí)現(xiàn)大文件切片上傳及斷點(diǎn)續(xù)傳的方法
- 詳解Python中的斷點(diǎn)類型
- python實(shí)現(xiàn)斷點(diǎn)調(diào)試的方法
- 基于python實(shí)現(xiàn)Pycharm斷點(diǎn)調(diào)試
- python 文件下載之?dāng)帱c(diǎn)續(xù)傳的實(shí)現(xiàn)
- python3射線法判斷點(diǎn)是否在多邊形內(nèi)
- 利用Pycharm斷點(diǎn)調(diào)試Python程序的方法
- python實(shí)現(xiàn)可以斷點(diǎn)續(xù)傳和并發(fā)的ftp程序
- python支持?jǐn)帱c(diǎn)續(xù)傳的多線程下載示例
- python斷點(diǎn)測(cè)試的實(shí)現(xiàn)
相關(guān)文章
Python閉包之返回函數(shù)的函數(shù)用法示例
這篇文章主要介紹了 Python閉包之返回函數(shù)的函數(shù)用法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01
Python基礎(chǔ)進(jìn)階之海量表情包多線程爬蟲功能的實(shí)現(xiàn)
這篇文章主要介紹了Python基礎(chǔ)進(jìn)階之海量表情包多線程爬蟲,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
利用Tkinter(python3.6)實(shí)現(xiàn)一個(gè)簡單計(jì)算器
這篇文章主要給大家介紹了關(guān)于利用Tkinter(python3.6)實(shí)現(xiàn)一個(gè)簡單計(jì)算器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
利用Anaconda創(chuàng)建虛擬環(huán)境的全過程
因?yàn)槎啻沃匦屡渲铆h(huán)境,這些命令每次都要用,每次都忘記,需要重新搜索,所以記錄這一過程,下面這篇文章主要給大家介紹了關(guān)于利用Anaconda創(chuàng)建虛擬環(huán)境的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07

