前段时间学习一个 Python 开源项目的时候看到了使用 pickle 库的代码,感觉反序列出来后的一些代码和以前熟悉的语言不太一样就了解了一下 pickle 库,确实是不一样,感觉是眼前一亮,确实和我见过的 PHP,Java,C#,JavaScript 实在不一样。我接触 Python 也有一段时间了,感觉还是有很多特性我是不熟悉的,确实有点感觉好奇 Python 还有多少类似这样的神奇特性?同样大家感觉哪些语言的特性哪些特性让你感觉眼前一亮的贴出来分享一下。
import pickle, StringIO
class Person(object):
# 自定义类型
def __init__(self, name, address):
self.name = name
self.address = address
def display(self):
print 'name:', self.name, 'address:', self.address
jj = Person("JGood", "中国 杭州")
jj.display()
file = StringIO.StringIO()
pickle.dump(jj, file, 0) # 序列化
print '+++++++++++++++++++++++++++++++'
print file.getvalue() #打印序列化后的结果
print '+++++++++++++++++++++++++++++++'
# del Person #反序列的时候,必须能找到对应类的定义。否则反序列化操作失败。
file.seek(0)
jj1 = pickle.load(file) # 反序列化 注意这里拿到的 jj1 相当于是 Person 实例了
# 见证奇迹的时刻
jj1.display()
file.close()
没错就是这里反序列出来又是个实例了
jj1 = pickle.load(file) # 反序列化
jj1.display()