码迷,mamicode.com
首页 > 编程语言 > 详细

Python —— pickle序列化与反序列化(1)

时间:2017-10-07 14:25:35      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:ext   复制   utf-8   python使用   div   imp   释放   反序   class   

Json可以在不同语言之间使用,而pickle只能在Python使用

Json不能序列化函数,而pickle可以。但是程序使用pickle.dump序列化函数后,执行该函数的内存就会释放,在另一个程序用pickle.load重新打开读取到的内存地址对应的空间已被释放,所以无法执行该函数:

 1 #_*_coding:utf-8_*_
 2 #__author__ = "csy"
 3 import pickle
 4 def sayhi(name):
 5     print("hello,",name)
 6 
 7 info = {
 8     name:csy,
 9     age:31,
10     job:工人,
11     func:sayhi
12 }
13 f = open("test.text","wb")
14 pickle.dump(info,f)   #相当于f.write(pickle.dumps(info))
15 f.close()

为了演示不报错,于是将被序列化的函数sayhi复制到调用pickle.load的Python文件:

 1 #_*_coding:utf-8_*_
 2 #__author__ = "csy"
 3 import pickle
 4 def sayhi(name):
 5     print("hello,",name)
 6 
 7 f = open("test.text","rb")
 8 data = pickle.load(f)   #相当于data = pickle.loads(f.read())
 9 f.close()
10 
11 print(data)
12 print(data[func](csy))

输出:

{‘func‘: <function sayhi at 0x000000000111FEA0>, ‘job‘: ‘工人‘, ‘name‘: ‘csy‘, ‘age‘: ‘31‘}
hello, csy
None

Python —— pickle序列化与反序列化(1)

标签:ext   复制   utf-8   python使用   div   imp   释放   反序   class   

原文地址:http://www.cnblogs.com/csy113/p/7634534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!