作者tsaiminghan (nahgnimiast)
看板Python
标题[问题] class的__del__
时间Sun Dec 29 13:19:39 2019
我有一个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://webptt.com/cn.aspx?n=bbs/Python/M.1577596782.A.1D4.html
1F:→ tsaiminghan: 上网查了一下,__del__好像有很多限制,不能乱用 12/29 13:28
2F:→ w0005151: 你要的应该是with...as,del不是这样用的 12/29 23:01
3F:→ MARGHT: at exit? 12/30 03:26
4F:→ MARGHT: atexit 没空格 12/30 03:27
5F:推 legendmtg: 这不是C++ destructor没办法让你做RAII 12/31 04:11
6F:→ Hsins: __del__ 除了 del 之外不一定保证触发,要看有没有 GC 01/03 13:43