我想利用Python中的几个C ++库来提供用于编写C ++应用程序脚本的Python API。所以我想知道将Python元组代替C ++结构传递给C ++函数是否有任何性能影响?另外,两个数据结构是否相同?如果两者相同,我如何防止传递具有不兼容成员类型的元组?这会影响性能吗?如果这会影响性能,那么在Python中处理这种情况的最佳实践是什么。请注意,我显然不是图书馆的作者。
答案 0 :(得分:2)
Python元组与Python之间几乎没有任何关系
C ++中的struct
。元组的元素既没有命名
也不打字,必须通过函数访问(在C ++中)
Python C API(PyTuple_GetItem
等)。内部
(虽然你没有直接访问它),一个元组是一个
指向对象的指针数组。即使是像int
和类似的类型
float
。
由于函数调用和添加的级别
间接,使用Python元组比使用慢
一个struct
。 “最佳实践”是编写包装函数,
它从元组中提取信息,做动态
类型检查等,并用它来初始化struct
然后发送C ++函数。真的没有别的
方式。