Python中文
首页
教程
问答
标签
搜索
登录
注册
有没有办法从python类生成c++类并在编译时绑定它?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>有没有办法从python类生成一个相对干净的c++类并在编译时绑定它?在</p> <p>例如,如果我有这个python类:</p> <pre class="lang-python prettyprint-override"><code>class CarDef: acceleration = 1000.0 brake = 1500.0 inertia = acceleration * 0.1 * brake def __init__(self): pass </code></pre> <p>我想要相应的c++类:</p> ^{pr2}$ <p>生成的c++类和原始的python类可能不同:我可以使用“getter方法”范式而不是类属性。在</p> <p>我试图实现的是用python创建资源文件,以便在c++应用程序中使用。目标是尽可能减少最终用户添加和使用参数所需的代码量;并且必须避免在“运行阶段”(在“初始化阶段”允许这样做)期间进行字符串比较。在</p> <p>我希望用户只需输入两次资源名称:一次是在python类中,一次是在c++中将要使用资源的地方,假设“魔力”将绑定这两个项(要么在运行时(我怀疑没有字符串比较就可以做到这一点),要么在编译时(中间步骤在编译项目之前生成c++类)。这就是为什么我要从python转到c++;我相信从c++到python至少需要两个python文件:一个是生成的,一个是从后者继承的(以避免覆盖已经指定的资源)。在</p> <p>最终用户的用途如下:</p> <pre class="lang-cpp prettyprint-override"><code>// A singleton definition manager class DefManager { CarDef mCarDef; public: static DefManager& GetReference() { static DefManager instance; return instance; } CarDef& getCarDef() { return mCarDef; } }; // One would use the generated CarDef class like this: mCar.setSpeed( mCar.getSpeed() + DefManager.GetReference().getCarDef().acceleration ); </code></pre> <p>考虑到这一点,python代码完全在c++代码之外。在</p> <p>我看到的一个明显的问题是如何知道python属性或方法返回的类型。我看到了一些例子,太好了!,但我还没有看到任何能满足我需要的例子。另外,在编译时,c生成的代码似乎仍然需要Python.h和cpythonapi库。在</p> <p>我有什么办法可以做到这一点吗?有更好的方法吗?在</p> <ul> <li>我使用的是python3.2+。在</li> <li>我正在使用微软的visualstudio2010(我们计划很快升级到2013年)。在</li> <li>我使用的是32位系统(但我们计划很快升级到64位,操作系统和开发的软件)。在</li> </ul>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以在C++代码中使用{a1}python,反之亦然。有很多助手函数,虽然有点难看,但功能非常强大,可能能够完成您想要的,尽管我不确定我是否完全理解您的问题。这不需要cythonapi,但仍然需要Python.h</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
在python3中使用Scipy pearsonr函数
6 回答
在Python3中使用scipy对多个lorentzian进行数据拟合
10 回答
在Python3中使用Script=argv
7 回答
在python3中使用selenium webdriver进行未解析的回溯
10 回答
在python3中使用selenium和phantomjs的网页截图之前如何等待?
1 回答
在Python3中使用Selenium和Requests模块从网页获取文件
8 回答
在python3中使用SIGINT终止函数
4 回答
在Python3中使用SIGTERM时,允许进程完成而不是中断
6 回答
在python3中使用smtplib发送XML内容
3 回答
在python3中使用socket库(RFCOMM模式)重新连接蓝牙设备?
9 回答
在python3中使用sounddevice和numpy编写wav文件
9 回答
在python3中使用Sqlalchemy插入MySQL查找类型错误的原因
5 回答
在python3中使用sqlite、pandas和sqlalchemy很难让rollback工作
9 回答
在python3中使用SQLite的FTS3/4
10 回答
在Python3中使用struct.calcsize()和len()有区别吗?
3 回答
在python3中使用substring函数时发生TypeError
3 回答
在Python3中使用Tkinter entry小部件写入串行设备
2 回答
在python3中使用tkinter时,如何在每次按下函数时获得运行该函数的按钮?
6 回答
在python3中使用tkinter的子帧
1 回答
在Python3中使用tryexcept块时,如何避免使用未初始化的变量?
2 回答