2

我有一个想在 Python 中使用的 C 函数,但是这个函数有一些变量属于旧的 GUI(不再使用)。有没有办法将此函数导入 Python 并为 GUI 变量重新赋值?如何?

例如,假设我在 C 中有以下函数,其中输入来自 GUI:

bool validate() {
  if (inputs->name == "") {
    return false;
  }
  // ...
  return true;
}

如何在 cython 中声明它,以使其在 python 中运行,以及如何覆盖输入值?非常感谢

编辑:

ctest.pxd

cdef extern from "myProj.h":
  bool print()

测试.pyx

def cPrint():
  # Is it possible to modify inputs here or anywhere else??
  return ctest.print()
4

1 回答 1

1

如果变量由 C 库公开,您应该能够简单地将它们的声明添加到您的 cython 文件中,然后在函数调用中适当地设置它们:

cdef extern from "myProj.h":
   bool print()

   struct inputs_t:
      char* name
      ...

   inputs_t* inputs;


def cPrint():
   inputs.name = "abc"
   return print()
于 2013-09-17T12:31:09.687 回答