[英]The object won't be deleted
from selenium import webdriver
class Manager:
def __init__(self):
option = webdriver.ChromeOptions()
option.add_argument('headless')
self.driver = webdriver.Chrome(options=option)
self.driver.set_window_size(1700,1000)
def __del__(self):
print("delete object")
self.driver.quit()
if __name__ == '__main__':
import chromedriver_autoinstaller
chromedriver_autoinstaller.install(True)
a = Manager()
print('a')
del a
input()
沒有調用析構函數
有誰知道這個問題??
我想刪除 object
del
不會破壞任何對象,它只是取消鏈接引用。 如果對Manager
object 的其他實時引用仍然存在,或者如果垃圾收集器沒有運行以清除任何循環引用,則不會調用__del__
。
如果您想保證某種清理操作,最好的辦法是使用上下文管理器:
class Manager:
def __init__(self):
option = webdriver.ChromeOptions()
option.add_argument('headless')
self.driver = webdriver.Chrome(options=option)
self.driver.set_window_size(1700,1000)
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
print("exit context manager")
self.driver.quit()
然后你可以像這樣使用它:
with Manager() as a:
print('a')
input()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.