有没有办法告诉对象的析构函数何时被垃圾回收器调用?我需要知道这一点,因为在析构函数释放它们之后,我需要一些网络资源。例如,析构函数删除可能立即添加的虚拟网络接口。在析构函数删除接口之前重新添加接口时,这当然会导致问题。必要的资源释放发生在代表虚拟网络的对象的__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"