如何等待Python对象的销毁

2024-09-28 20:50:47 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法告诉垃圾收集器何时调用了对象的析构函数?我需要知道这一点,因为在析构函数释放它们之后,我需要一些网络资源。例如,析构函数删除一个虚拟网络接口,该接口可能会立即再次添加。这当然会导致在析构函数删除接口之前重新添加接口时出现问题。必要的资源释放发生在表示虚拟网络的对象的__del__(self)函数中

def __del__(self):
        print("Deconstructing " + self.devName)
           [...]
        sub.call(["ip", "link", "delete", self.devName])
        sub.call(["pkill", "dnsmasq"])
        try:
            os.remove("/var/lib/misc/dnsmasq.leases")
        except:
            "No dhcp leases to delete"

Tags: 对象函数self资源calldelete网络接口垃圾