我看过这个页面:https://docs.python.org/3/c-api/object.html但是似乎没有任何方法可以调用像long_lshift
或long_or
这样的函数
调用这些函数对我来说不是必要的,我也可以使用更通用的版本,尽管我更喜欢调用这些函数。不管怎样,有没有办法用这些?我需要包括什么?下面是一些示例代码,我想在其中使用它们(简化):
size_t parse_varint(parse_state* state) {
int64_t value[2] = { 0, 0 };
size_t parsed = parse_varint_impl(state, value);
PyObject* low = PyLong_FromLong(value[0]);
PyObject* high;
if (value[1] > 0) {
high = PyLong_FromLong(value[1]);
PyObject* shift = PyLong_FromLong(64L);
PyObject* high_shifted = long_lshift(high, shift);
state->out = long_or(low, high_shifted);
} else {
state->out = low;
}
PyObject_Print(state->out, stdout, 0);
return 0;
}
我在文档中找不到这些函数,但它们似乎是在
Python.h
头中导出的:PyNumber_Lshift
是代码中long_shift
的替换李>PyNumber_Or
是代码中long_or
的替代品李>相关问题 更多 >
编程相关推荐