繁体   English   中英

如何在Python对象上调用全局函数?

[英]How do I call global functions on Python objects?

我看过以下页面: https : long_lshift但似乎没有任何方法可以调用long_lshiftlong_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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM