我想利用Python中的几个C ++库来提供用于编写​​C ++应用程序脚本的Python API。因此,我想知道将Python元组代替C ++结构传递给C ++函数是否会对性能产生影响?另外,两个数据结构是否相同?如果两者相同,如何防止成员类型不兼容的元组通过?这会影响性能吗?如果这会影响性能,那么在Python中处理此类情况的最佳实践是什么。请注意,我显然不是库的作者。

最佳答案

Python元组和
C ++中的struct。元组的元素均未命名
也不输入,并且必须通过C中的函数进行访问(在C ++中)
Python C API(PyTuple_GetItem等)。内部地
(尽管您无法直接访问它),元组是
指向对象的指针数组。即使对于int
float

由于函数调用和附加级别的
间接,使用Python元组会比使用慢
struct。最佳做法是编写包装函数,
从元组中提取信息,进行动态
类型检查等,并使用它来初始化struct
然后,您发送C ++函数。真的没有别的
办法。

关于python - 传递Python元组代替C++ struct函数参数是否会对性能产生影响?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26388938/

10-11 04:37
查看更多