假设我们在 python 中有一个类:
class A(object):
def __del__(self):
print "Del!"
__del__
在删除/垃圾收集任何A
实例时调用。
是否可以为班级做同样的事情?我想在类本身被垃圾收集时调用一些方法,我假设这是在脚本退出时完成的。
提前感谢您的任何指点!
编辑:正如我所料,每个人都试图让我远离使用这种技术(我自己可能会发表这样的评论:)),尽管问题仍然存在:这可能吗?
我想要以下内容:我有一个带有需要清理的静态成员的类。
class A(object):
class Meta(type):
def __new__(mcs, name, bases, attrs):
attrs['conn'] = sqlite3.connect( DB_FILE )
return type.__new__(mcs, name, bases, attrs)
__metaclass__ = Meta
我想A.conn.close()
被调用,但就在程序关闭之前 - 即当我知道将不再A
创建更多实例时。我知道我可以用 来做到这一点atexit
,但这看起来很丑陋。