0

例如,我在 python 中有一个函数,我想转换为 c++(或从 c++ 调用,但我不想依赖 python 解释器)简单的 python 函数

//test.py
def my_sum(x,y):
    print "Hello World!"
    return x*x+y

我跑脱皮并有

//test.cpp
#include "builtin.hpp"
#include "test.hpp"

namespace __test__ {


str *__name__;



void __init() {
    __name__ = new str("__main__");

}

} // module namespace

int main(int, char **) {
    __shedskin__::__init();
    __shedskin__::__start(__test__::__init);
}

//test.hpp
#ifndef __TEST_HPP
#define __TEST_HPP

using namespace __shedskin__;
namespace __test__ {



extern str *__name__;



} // module namespace
#endif

丑陋的代码并且没有我的函数 my_sum 并且代码依赖于“builtin.hpp”。是否可以仅转换功能?

或者

我想从我的 c++ 代码中调用函数,例如 int sum= py.my_sum(3,5); 我怎样才能做到这一点?

或者

也许我可以从我可以在 c++ 代码中使用的 python 代码做 DLL 或 Lib?

4

1 回答 1

1

请注意 shedskin 对此程序的警告:

*WARNING* test.py:1: function my_sum not called!

文档中还提到要使编译工作,应该(直接或间接)调用函数,因为否则无法进行类型推断..如何确定 my_sum 参数的类型,如果甚至没有一个电话给它..?:-)

添加这个,例如:

if __name__ == '__main__':
  my_sum(1,1)

使 my_sum 出现在生成的 C++ 代码中,该代码可能被另一个 C++ 程序调用。

于 2012-05-01T20:22:00.177 回答