首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法理解shedskin生成的代码

我无法理解shedskin生成的代码
EN

Stack Overflow用户
提问于 2012-04-27 16:58:11
回答 1查看 350关注 0票数 0

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

代码语言:javascript
复制
//test.py
def my_sum(x,y):
    print "Hello World!"
    return x*x+y

我运行了shedskin并且有

代码语言:javascript
复制
//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)的函数;我该怎么做呢?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-02 04:22:00

请注意shedskin为该程序提供的警告:

代码语言:javascript
复制
*WARNING* test.py:1: function my_sum not called!

文档中还提到,为了使编译起作用,应该(直接或间接)调用函数,否则无法进行类型推断。如果没有对my_sum的调用,如何确定它的参数类型??:-)

添加以下内容,例如:

代码语言:javascript
复制
if __name__ == '__main__':
  my_sum(1,1)

使my_sum出现在生成的C++代码中,该代码可能会被其他C++程序调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10347741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档