对象的序列化
序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
在Python中,这种序列化过程称为pickle,可以将对象pickle成字符串、磁盘上的文件或者任何类似于文件的对象,也可以将这些字符串、文件或类似于文件的对象unpickle成原来的对象。
通过pickle模块实现基本的数据序列和反序列化。
将对象序列化成字符串
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序列解包:
就是将序列中存储的值指派给各个变量(被解包的序列里的元素数量必须与左侧的变量数量相同,否则会报异常)
链式赋值:
可以一次性将一个值指派给多个变量
异常处理语句:
使用异常处理语句可以捕获到异常情况,并进行处理,从而避免程序异常退出。
#异常处理语句
try:
i =10
print(30/(i-10))
except Exception as e:
print(e)
finally:
print("执行完成")
函数
当使用列表或字典作为函数参数时,在函数内部对列表或字典的元素所进行的操作会影响调用函数的实参
函数参数可以设置默认值,并且有默认值的参数只能出现在没有默认值的参数后面。
可变长参数:
当参数以*开头时,表示可变长参数将被视为一个元组
#可变长参数
def func1(*t):
print("可变长参数数量如下:")
print(len(t))
print("依次为:")
for iin range(len(t)):
print(t[i])
func1(1,2,3,4)
网友评论