问题描述
在python导入模块(如from tensorflow_gnn.sampler import sampling_spec_pb2
)时,你会发现工程中并没有定义sampling_spec_pb2
模块,那么该模块是怎么来的呢?
原因
其实该模块是来自于sampling_spec.proto
,一旦工程中出现了sampling_spec.proto
,解释器会自动将其解释为sampling_spec_pb2
模块。即,将.proto
替换为_pb2
。
再举个例子,如果工程中存在subgraph.proto
,则解释器将会将其解释为subgraph_pb2
模块。
以上是根据自己的观察得出,并没有查阅权威资料,.proto
文件应该是来自于google的protobuf协议。