Python序列化

什麼是序列化?

我們把對象(變量)從內存中變成可存儲或傳輸的過程稱之爲序列化,在Python中叫pickling,在其他語言中也被稱之爲serialization,marshalling,flattening等等,都是一個意思。

爲什麼要序列化?

1:持久保存狀態

需知一個軟件/程序的執行就在處理一系列狀態的變化,在編程語言中,'狀態'會以各種各樣有結構的數據類型(也可簡單的理解爲變量)的形式被保存在內存中。

內存是無法永久保存數據的,當程序運行了一段時間,我們斷電或者重啓程序,內存中關於這個程序的之前一段時間的數據(有結構)都被清空了。

在斷電或重啓程序之前將程序當前內存中所有的數據都保存下來(保存到文件中),以便於下次程序執行能夠從文件中載入之前的數據,然後繼續執行,這就是序列化。

具體的來說,你玩使命召喚闖到了第13關,你保存遊戲狀態,關機走人,下次再玩,還能從上次的位置開始繼續闖關。或如,虛擬機狀態的掛起等。

2:跨平臺數據交互

序列化之後,不僅可以把序列化後的內容寫入磁盤,還可以通過網絡傳輸到別的機器上,如果收發的雙方約定好實用一種序列化的格式,那麼便打破了平臺/語言差異化帶來的限制,實現了跨平臺數據交互。

反過來,把變量內容從序列化的對象重新讀到內存裏稱之爲反序列化,即unpickling。

轉於:http://www.cnblogs.com/linhaifeng/articles/6384466.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章