假設我以一個字符串的形式在一個名爲passWd
的變量中以明文形式存儲密碼。 如何蟒蛇發佈這個變量一旦我放棄它(例如,用del passWd
或passWd= 'new random data'
)?Python - 發佈/替換字符串變量,它如何處理?
被存儲爲字節數組這意味着它可以在memoryplace被覆蓋,它原先就存在或者是它的字符串的固定在不能assining一個新值時,一個用於進行修改和存在的存儲器區域設定新的內存區域被創建並且舊區域被丟棄但不被null覆蓋?
我質疑的Python是如何實現的內存區域的安全,並想知道更多一點,主要是因爲我很好奇:)
從我迄今收集,使用del
(或__del__
)解釋器會不會釋放出可變全自動這可能會導致問題的存儲區域,並且還我不知道該德爾被等刪除值thurrow。但這只是從我收集的東西,而不是黑色或白色的東西:)
我問的主要原因是我打算寫一個移交的應用程序獲取一個字符串,做一些I/O,將它傳遞給另一個子系統(例如用於樹莓派的引導程序),並且接口是用Python編寫的(在某些人的耳朵裏聽起來有多奇怪..),我並不擔心數據在I/O計算,但在兩個子系統切換之間可能會發生內存轉儲。或者如果系統被凍結(說hiberation)說,20分鐘系統的引導和我一樣快,我可以刪除的變量之後,但不知何故,它仍然在內存,儘管我做了del passWd
:)
(詩篇。我已經問過超級用戶,他們在這裏提到我,並且對於可憐的語法感到抱歉!)
請參閱http://docs.python.org/2/c-api/memory.html – 2013-04-09 14:43:04
我讀過所有這些,如果我不是不喜歡C它只是通過malloc分配一個內存區域,做一些東西與它並釋放它..在調用free()之後,它不會真正重寫那個內存區域中剩下的內容嗎? – Torxed 2013-04-09 14:44:22
它剛剛被釋放。內存*可能會被別的東西使用,但是它沒有保證。 – 2013-04-09 14:45:32