【发布时间】:2020-12-02 12:26:15
【问题描述】:
我有一个脚本,我在其中使用 API 在云上创建一个对象,并希望在某些情况下在脚本末尾删除它。
class ObjCreator():
def __init__(self, keep_object: bool):
self.keep_object = keep_object
print("init")
def create_object(self):
print("Created object using API")
def delete_object(self):
print("Deleting object using API")
def __del__(self):
print("Deleting object using API only if keep_object is False")
if not self.keep_object:
self.delete_object()
我在 Python 程序中看到了一些内存泄漏,因此显然 GC 不是完美的(即无法收集的对象)。
我担心重写 del 函数会导致内存泄漏。 那可能吗? 如果是这样,您对不同的优雅解决方案有什么建议吗?
【问题讨论】:
-
欢迎来到 SO!请注意,您不是重载它,而是覆盖它,也许这有助于谷歌搜索答案
-
附加提示:所有这些方法都需要添加参数
self才能工作——这是对Python显式传递的调用类的引用! -
嗨,谢谢 :) 当我为这个问题编写代码的简化时,我不小心错过了自我。固定。
标签: python python-3.x memory-leaks garbage-collection python-3.6