分類

展開全部 | 收合全部

分類

展開全部 | 收合全部

【Python】問題解決:python 執行到一半莫名卡住的可能原因

問題描述

有時 python 執行到一半會莫名停止,
此文為之前解 bug 最後找到的有效解法。

解法

可能原因有很多種,但這邊只列出個人有成功的解法。

簡單來說,我碰到的是在 call function 時回傳的 args 數量不對等的問題。

例如:

def bug_func():
    return 1,2,3,4,5

a,b,c,d = bug_func()

後來發現因為少一個變數而卡住,

此方法不見得是各種卡住狀況的通用解,為檢查的方向。
這種沒有直接跳 error 的 bug 最難搞了……

此外,依據 design pattern 的設計,
當一個 function 如果有回傳 3 個以上的變數,
會建議可以打包成一個 struct (dict),
再使用 dict[key],會讓程式碼更容易被閱讀。

建議修改方向: by design pattern

def bug_func():
    dict = {}
    dict[a] = 1
    dict[b] = 2
    dict[c] = 3
    dict[d] = 4
    dict[e] = 5
    return dict

result_dict = bug_func()
# 之後再使用 dict[key] 去取用變數,記得 a,b,c,d,e 盡量是有意義的名字。

Howard Weng
Howard Weng

我是 Howard Weng,很多人叫我嗡嗡。這個網站放了我的各種筆記。希望這些筆記也能順便幫助到有需要的人們!如果文章有幫助到你的話,歡迎幫我點讚哦!
另外,因為定位是「個人的隨手筆記」,有些文章內容「⚠️可能我理解有誤⚠️」或「?只寫到一半?」,如果有發現這樣的情況,歡迎在該文章的最下面留言提醒我!我會儘快修正或補上!感謝大家的建議與幫忙,讓網站能變得更好?

文章: 866

★留個言吧!內容有誤或想要補充也歡迎與我討論!