對象的序列化
序列化是將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^程。在序列化期間,對象將其當(dāng)前狀態(tài)寫入到臨時(shí)或持久性存儲(chǔ)區(qū)。以后,可以通過從存儲(chǔ)區(qū)中讀取或反序列化對象的狀態(tài),重新創(chuàng)建該對象。
在Python中,這種序列化過程稱為pickle,可以將對象pickle成字符串、磁盤上的文件或者任何類似于文件的對象,也可以將這些字符串、文件或類似于文件的對象unpickle成原來的對象。
通過pickle模塊實(shí)現(xiàn)基本的數(shù)據(jù)序列和反序列化。
將對象序列化成字符串
import pickle
lista = ['C++','C','Java','Python']
listb = pickle.dumps(lista)
#將字符串反序列化成對象
listc = pickle.loads(listb)
將對象序列化到文件
pickle.dump(被序列化的對象,文件對象)
文件對象 = open(文件名,訪問模式,buffering)
#將對象序列化到文件
output =open('data.pkl','wb')
pickle.dump(lista,output)
output.close()
#從文件data.pkl反序列化
f =open('data.pkl','rb')
list = pickle.load(f)
print(list)
f.close()
使用pickle.load()方法可以將使用pickle.dump()方法得到的文件反序列化成原來的對象
Python序列解包:
就是將序列中存儲(chǔ)的值指派給各個(gè)變量(被解包的序列里的元素?cái)?shù)量必須與左側(cè)的變量數(shù)量相同,否則會(huì)報(bào)異常)
鏈?zhǔn)劫x值:
可以一次性將一個(gè)值指派給多個(gè)變量
異常處理語句:
使用異常處理語句可以捕獲到異常情況,并進(jìn)行處理,從而避免程序異常退出。
#異常處理語句
try:
i =10
? ? print(30/(i-10))
except Exception as e:
print(e)
finally:
print("執(zhí)行完成")
函數(shù)
當(dāng)使用列表或字典作為函數(shù)參數(shù)時(shí),在函數(shù)內(nèi)部對列表或字典的元素所進(jìn)行的操作會(huì)影響調(diào)用函數(shù)的實(shí)參
函數(shù)參數(shù)可以設(shè)置默認(rèn)值,并且有默認(rèn)值的參數(shù)只能出現(xiàn)在沒有默認(rèn)值的參數(shù)后面。
可變長參數(shù):
當(dāng)參數(shù)以*開頭時(shí),表示可變長參數(shù)將被視為一個(gè)元組
#可變長參數(shù)
def func1(*t):
print("可變長參數(shù)數(shù)量如下:")
print(len(t))
print("依次為:")
for iin range(len(t)):
print(t[i])
func1(1,2,3,4)
調(diào)用函數(shù)直接使用函數(shù)名來調(diào)用
Python實(shí)行按值傳遞參數(shù)。值傳遞指調(diào)用函數(shù)時(shí)將常量或變量的值(通常稱為實(shí)參)傳遞給函數(shù)的參數(shù)(通常稱為形參)
注意:當(dāng)使用列表或字典作為函數(shù)參數(shù)時(shí),在函數(shù)內(nèi)部對列表或字典的元素進(jìn)行的操作會(huì)影響調(diào)用函數(shù)的實(shí)參。
參數(shù)的默認(rèn)值
python中可以為函數(shù)的參數(shù)設(shè)置默認(rèn)值??梢栽诙x函數(shù)時(shí),直接在參數(shù)后面使用"="為其設(shè)置默認(rèn)值。在調(diào)用函數(shù)時(shí),可以不指定擁有默認(rèn)值的參數(shù)的值,此時(shí)在函數(shù)體中以默認(rèn)值作為該參數(shù)。
注意:有默認(rèn)值的參數(shù)只能出現(xiàn)在沒有默認(rèn)值的參數(shù)的后面。
Python還支持可變長度的參數(shù)列表??勺冮L參數(shù)可以是元組或字典。當(dāng)參數(shù)以*開頭時(shí),表示可變長參數(shù)將被視為一個(gè)元組。
在調(diào)用函數(shù)時(shí),也可以不指定可變長參數(shù),此時(shí)可變長參數(shù)是一個(gè)沒有元素的元組字典
當(dāng)參數(shù)以**開頭時(shí),表示可變長參數(shù)將被視為一個(gè)字典