Python 多處理中的PicklingError
使用Python 多處理時,可能會遇到「PicklingError: Can't pickle
巢狀函數問題
中根據您的具體情況,錯誤可能是由您正在酸洗的函數呼叫巢狀函數引起的。即使外部函數 f() 是在頂層定義的,如果它呼叫包含巢狀函數 h() 的函數 g(),多重處理將嘗試 pickle 巢狀函數並失敗。
解決方案
要解決此問題,請將您想要 pickle 的函數移到模組的頂層。或者,您可以在頂層建立一個單獨的函數來呼叫巢狀函數並醃製該函數。
例如:
# Original code def f(): g() def g(): h() # Corrected code def f(): wrapper_function() def wrapper_function(): g() h()
透過在頂層定義wrapper_function()然後對其進行酸洗,可以避免酸洗錯誤。
附加註意事項
以上是如何解決Python多處理的「PicklingError: Can't pickle」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!