我正在尝试在Python 3项目中使用Google协议缓冲区。但是,生成的python文件不想与google.protobuf库配合使用。尝试使用protobuf对象会导致NotImplementedError。
我的设置:
使用这些库时出现问题:
例:
from pb_test import test_pb2
pb_object = test_pb2.TestMsg()
pb_object.Clear() # results in NotImplementedError
Run Code Online (Sandbox Code Playgroud)
当使用两个不同的库时,会出现相同的问题,这强烈表明存在无效的test_pb2.py文件。“未实现”的方法位于Message类中,该类应该被元类覆盖。似乎根本没有应用元类。
test.proto文件:
message TestMsg {
required int32 id = 1;
}
Run Code Online (Sandbox Code Playgroud)
使用以下命令编译文件:
eipifi@debvm:~/pb_test$ protoc --python_out=. test.proto
Run Code Online (Sandbox Code Playgroud)
任何提示将不胜感激。
我正在处理一个运算无符号256位整数的算法,我需要编写一个函数来计算给定公式的值
uint256 compute(uint16 x) {
return floor(exp2(x / 256)) - 1;
}
Run Code Online (Sandbox Code Playgroud)
我们可以看到等式保留了变量边界(compute(0) == 0,compute(65535) == 1<<255).该划分应被视为有理数的划分,而不是整数.
提出的语法是伪C,但我正在寻找可以在其他语言中使用的通用算法方法.
非常感谢你的帮助和时间.