最近在學習python多線程,由於之前沒有接觸這塊,這下可吃下苦頭了
python多線程傳參並不像C++/java那么方便,雖然定義了args 和 kargs參數,但總體感覺還是覺得沒有其它
語言靈活,廢話不多說踩過的坑說一下
比如我們開一個線程,免不了要傳遞一些參數
self._thread = threading.Thread(target=self.run,args=(),kwargs=argsDic)
argsDic是一個字典
run 是callback函數
這時候定義run函數如果你像java那樣習慣性的
def run(self,args):
.....
那么你在執行程序時會陷入 這個錯誤
TypeError: __init__() got an unexpected keyword argument
一時你覺得自己沒有問題呀,但實際上就陷入其它語言的定式思維,這時候就要跳出這個思維,好好想想為什么
最后以拆解args對象來解決問題