protobuf序列化的问题

来源:18-2 分布式爬虫架构

鱼右

2018-12-26

老师你好, 我现在想用protobuf,重写老师的代码, 遇到了一些疑问,希望老师有空可以帮忙 解决一些,谢谢!

http://img.mukewang.com/szimg/5c23446a0001367609810507.jpg

1. 这里是我在protobuf,生成文件中 截取的一段代码, 老师这里是个指针为什么可以直接序列化呢?

2. 老师在课程中也有一个嵌套对象的例子, 当时你是把它拆分了, 直接把那个对象序列化不行吗

3. 那是不是python的class也可以被序列化呢

4. 这种序列化class 或者函数的原理 与序列化字符串有什么不同吗?, 它们的原理是什么呢?多谢!!!!!

写回答

1回答

ccmouse

2018-12-26

首先我们明确下序列化的概念。就是把一个"东西"转化成字节流,并且能够通过反序列化复原。这个转化的方法,可以是系统自带也可以是库来提供也可以自己写

1. 这里是我在protobuf,生成文件中 截取的一段代码, 老师这里是个指针为什么可以直接序列化呢?
protobuf的库里面会看到这是个指针然后把他指向的内容进行序列化。你可以使用断点跟进去看一下相关代码

2. 老师在课程中也有一个嵌套对象的例子, 当时你是把它拆分了, 直接把那个对象序列化不行吗
如果使用json或是protobuf库的话,就可以直接序列化。

3. 那是不是python的class也可以被序列化呢
python里面有一个pickle库,或者干脆json库,都可以做这样的序列化。
4. 这种序列化class 或者函数的原理 与序列化字符串有什么不同吗?, 它们的原理是什么呢?多谢!!!!!
原理的话,能够转成字节流再转回去就可以啦。字符串因为本身底层就是个字节流,所以不用转换直接把底层数据传出去即可

0
1
鱼右
非常感谢!
2018-12-26
共1条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程