gpt4 book ai didi

c++ - 使用 c++ 对象的全局实例扩展嵌入式 python 解释器

转载 作者:太空狗 更新时间:2023-10-29 23:18:55 24 4
gpt4 key购买 nike

我有课

class A {
A(SomeClass* ptr);
do_something();
};

我想在使用 boost-python 的嵌入式 python 解释器中使用

到目前为止,我已经设法通过 BOOST_PYTHON_MODULE 创建了一个 python 模块。并创建了一个 class_<A>带有接受 SomeClass 指针的构造函数。

现在我想扩展解释器,以便每当调用某些 python 代码时都有此类的实例(名为 an_a),以便以下 python 代码有效:

#preferably no imports here.
an_a.do_something()

我的问题有两方面,我需要在使用解释器之前用 Python 或 C++ 构造这个对象,并且我需要让脚本的编写者可以使用这个对象。我在找到如何在我能找到的文档中确切地执行此操作时遇到了一些问题。

最佳答案

我最近需要做这件事。我也考虑过(并使用过)Boost.Python,但就我个人而言(尽管我非常喜欢 Boost),我发现不得不拖入一半的 Boost 库来获得这一特性太过分了。

因此,如果您有兴趣,我最近在名为 ECS:Python 的 Python 包装器库中根据第一原理为 C++ 实现了嵌入式 Python 脚本。 ECS:Python(使用 Python 的嵌入式 C++ 脚本)专为希望将对象从 C++ 应用程序公开到嵌入式 Python 解释器以进行交互式脚本编写的 C++ 开发人员而设计。

它是免费的 (BSD) 和开源的: http://sourceforge.net/projects/ecspython

关于c++ - 使用 c++ 对象的全局实例扩展嵌入式 python 解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com