看板 Python 關於我們 聯絡資訊
我有一個class,是全域變數。 在__del__時,會使用一些import進來的模組 比如csv或是configparser把值寫回檔案 ------------------------------------- class CONFIG(object): def __init__(self): .... def __del__(self): ... _CONFIG = CONFIG() ------------------------------------- 我本來想說在python結束時,會觸發__del__,但是 碰到import進來的模組會報一些奇怪的錯誤,比如說 open函式找不到,後來亂試,在程式結束前強制刪除(見下面) ------------------------------------- del _CONFIG ------------------------------------- 結果問題似乎就消失了,請問__del__是不是在 python結束時,可能會不能正常使用module?一般會怎麼 處理這種情況? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.82.128 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1577596782.A.1D4.html
tsaiminghan: 上網查了一下,__del__好像有很多限制,不能亂用 12/29 13:28
w0005151: 你要的應該是with...as,del不是這樣用的 12/29 23:01
MARGHT: at exit? 12/30 03:26
MARGHT: atexit 沒空格 12/30 03:27
legendmtg: 這不是C++ destructor沒辦法讓你做RAII 12/31 04:11
Hsins: __del__ 除了 del 之外不一定保證觸發,要看有沒有 GC 01/03 13:43