Python出bug之後的一些審查方向

2021-09-13 11:18:19 字數 865 閱讀 6228

檢查函式名或者變數名是否有重名導致覆蓋內容的

如果使用到同乙個物件,檢視前後id是否相同

如果乙個物件沒有被釋放,可以import sys,使用sys.getrefcount()方法檢視這個物件的引用個數

是否重寫了某些系統的預設方法,比如__del__(self),如果重寫了,而且沒有呼叫父類的__del__(self)方法,則會記憶體洩漏

如果函式裡面使用全域性變數要用global

使用多程序的時候要注意每個程序的資料是不共享的。

使用了元組的話,如果元組裡面只有乙個值,一定要在這個值後面加逗號","eg.(「abc」,) 否則不是元組

多執行緒使用global的時候可能會出錯

解決方式一:time.sleep(1)先讓乙個執行緒執行完

解決方式二:上鎖。 (注意要上在最短最小塊,最必要加的地方,能不上就不上。比如放在for裡面而不是外面)

from threading import lock

mutex = lock(

)mutex.acquire(

)# 用來上鎖

mutex.release(

)# 用來解鎖

# 不同的執行緒間競相呼叫mutex.acquire(),爭先上鎖

# 執行緒執行完要記得解鎖mutex.release()

# 那些想上鎖,但是卻沒能獲得上鎖機會的執行緒,就在鎖的位置等待鎖被解開,一旦有機會,就搶著上鎖

# 上鎖用的是**通知方式**,而不是像while true的**輪詢** 方式

出現編碼問題時候,要檢查軟體的編碼規則,是utf8還是gb2312或者是其他編碼規則.

出現一些賦值問題的時候,考慮是不是因為深拷貝、淺拷貝的問題.

整理的一些Bug

前言 最近在學c 因為公司要求,以前從沒接觸過c 但是來到這個公司公司的人要我負責c 的乙個工程,所以沒辦法,學唄,難道不是很難,現在的學習環境也很好,直接就上專案,這樣學起來會很快,這篇部落格是將我所遇到的一些bug整理一下,以回顧回顧。1.無法顯示額外的 分析警告或錯誤 在使用vs2005編譯程...

解BUG的一些心得

目前,軟體 一直是程式設計師的夢魘,但其實只要掌握一定的技巧和基本知識,是可以輕鬆解決掉這些bug的。1 程式跑一段時間以後會越跑越慢。2 程式無緣無故crash。3 程式記憶體越變越大,直至程式crash。4 程式跑著突然死掉了。一 定位執行緒。以上解決問題的關鍵是先定位到程式變慢的 對於第1 4...

來北京之後的一些想法

剛剛看演示,markdown這個東西真的挺好的。很適合用來寫部落格。到這的第二天就跑去面試,當時也沒有太多的準備,很意外,先做了一套筆試題,做完了說讓我等會,然後面試簡單的說兩句,就打發我走了。面試出來心情頓時很好,很放鬆,看到大街上人來人往,沒來過帝都的我,頓時顯得很老土,擠電梯到了最後的b1層我...