欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python反序列化指的是什么

這篇文章將為大家詳細講解有關python反序列化指的是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了于田免費建站歡迎大家使用!

python的序列化是把變量從內(nèi)存中變成可存儲或傳輸?shù)倪^程,反序列化是把變量內(nèi)容從序列化的對象重新讀到內(nèi)存的過程。方法是:1、導入pickle模塊;2、利用pickle中的loads或load函數(shù)進行反序列化操作。

python反序列化指的是什么

我們把變量從內(nèi)存中變成可存儲或傳輸?shù)倪^程稱之為序列化。

序列化之后,就可以把序列化后的內(nèi)容寫入磁盤,或者通過網(wǎng)絡傳輸?shù)絼e的機器上。

反過來,把變量內(nèi)容從序列化的對象重新讀到內(nèi)存里稱之為反序列化,即unpickling。

舉例:大家應該都玩過魔獸爭霸,應該知道該游戲有一個存檔的功能,我每次不想玩得時候就可以存檔,然后再玩得時候我們根本不需要重新開始玩,只需要讀檔就可以了。我們現(xiàn)在學習的事面向?qū)ο蟮乃枷耄敲丛谖覀冄壑胁还苁俏覀兊挠螒蚪巧€是游戲中的怪物、裝備等等都可以看成是 一個個的對象,進行簡單的分析。

角色對象(包含等級、性別、經(jīng)驗值、HP、MP等等屬性)
武器對象(包含武器的類型、武器的傷害、武器附加的能力值等等屬性)
怪物對象(包含等級、經(jīng)驗值、攻擊、怪物類型等等)
于是玩游戲過程變的非常有意思了,創(chuàng)建游戲角色就好像是創(chuàng)建了一個角色對象,拿到武器就好像創(chuàng)建了一個武器對象,遇到的怪物、NPC等等都是對象了。
然后再用學 過的知識進行分析,我們發(fā)現(xiàn)對象的數(shù)據(jù)都是保存在內(nèi)存中的,應該都知道內(nèi)存的數(shù)據(jù)在斷電以后是會消失的,但是我們的游戲經(jīng)過存檔以后,就算你關機了幾天, 再進入游戲的時候,讀取你的存檔發(fā)現(xiàn)你在游戲中的一切都還在呢,奇怪了,明明內(nèi)存中的數(shù)據(jù)已經(jīng)沒有了啊,這是為什么呢?于是再仔細考慮,電腦中有硬盤這個 東西在斷電以后保存的數(shù)據(jù)是不會丟的(要是由于斷電導致的硬盤損壞了,沒有數(shù)據(jù)了,哈哈,不在此考慮中)。那么應該很容易的想到這些數(shù)據(jù)是被保存在硬盤中 了。沒錯!這就是對象的持久化,也就是我們今天要講的對象的序列化。那么反序列化就很好理解了就是將存放在硬盤中的信息再讀取出來形成對象。

pickle模塊提供了四個功能:dumps、dump、loads、load。

dumps和dump都是進行序列化,而loads和load則是反序列化。

>>> import pickle
>>> d=[1,2,3,4]
>>> pickle.dumps(d)
b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.'

dumps將所傳入的變量的值序列化為一個bytes,然后,就可以將這個bytes寫入磁盤或者進行傳輸。

而dump則更加一步到位,在dump中可以傳入兩個參數(shù),一個為需要序列化的變量,另一個為需要寫入的文件。

f=open('file_test','wb')
>>> d=[1,2,3,4]
>>> pickle.dump(d,f)
>>> f.close()
>>> f=opem('file_test','rb')
 f=open('file_test','rb')
 >>> f.read()
b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.'

loads當我們要把對象從磁盤讀到內(nèi)存時,可以先把內(nèi)容讀到一個bytes,然后用loads方法反序列化出對象,也可以直接用load方法直接反序列化一個文件。

>>> d=[1,2,3,4]
>>> r=pickle.dumps(d)
>>> print(r)
b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.'
>>> pickle.loads(r)
[1, 2, 3, 4]
>>> d=[1,2,3,4]
>>> f=open('file_test','wb')
>>> pickle.dump(d,f)
>>> f.close()
>>> f=open('file_test','rb')
>>> r=pickle.load(f)
>>> f.close()
>>> print(r)
[1, 2, 3, 4]

關于python反序列化指的是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享文章:python反序列化指的是什么
分享路徑:http://chinadenli.net/article0/pgpcio.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站品牌網(wǎng)站設計電子商務自適應網(wǎng)站網(wǎng)站制作全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設