簡體   English   中英

object 不會被刪除

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM