嵌入Python:如何帮助编写脚本

Embedding Python: How to help the scripter?

本文关键字:帮助 脚本 Python 何帮助 嵌入      更新时间:2023-10-16

我使用Boost在我的应用程序中嵌入Python。例如,我想检查下面的函数是否接收一个整数和一个字符串作为第一个和第二个参数(函数是在c++中定义的)。

someFunction(123, 'words')
例如,如果我发现参数不正确,我如何通知脚本程序他们需要更正哪一行?

如果您使用通常的def("someFunction",someFunction,...)包装函数,调用者将自动获得关于c++签名无法与python传递的对象匹配的通知,就像这样(该方法接受一个字典参数,而不是用3个数字调用):

>>> scene.updateAttrs(1,2,3)
ArgumentError: Python argument types in
    Serializable.updateAttrs(Scene, int, int, int)
did not match C++ signature:
    updateAttrs(Serializable {lvalue}, boost::python::dict)

你能贴一些代码看看你的问题是什么吗?

引发一个异常,其中包含您希望它们知道的所有信息,就像在Python中一样。事实上,这个答案看起来太明显了,这让我觉得我在你的问题中遗漏了一些东西。