我正在使用Boost在我的應用程序中嵌入Python。例如,我想檢查下面的函數接收一個整數和一個字符串作爲第一個和第二個參數(該函數在C++中定義)。嵌入Python:如何幫助腳本?
someFunction(123, 'words')
如果我發現參數是不正確的,我怎麼可以通知有關哪一行,他們需要糾正,例如編劇?
我正在使用Boost在我的應用程序中嵌入Python。例如,我想檢查下面的函數接收一個整數和一個字符串作爲第一個和第二個參數(該函數在C++中定義)。嵌入Python:如何幫助腳本?
someFunction(123, 'words')
如果我發現參數是不正確的,我怎麼可以通知有關哪一行,他們需要糾正,例如編劇?
用你希望他們知道的所有信息引發異常,就像在Python中一樣。事實上,這個答案看起來很明顯,這讓我覺得我在你的問題中錯過了一些東西。
如果使用通常的def("someFunction",someFunction,...)
包裹功能,來電會得到自動通知哪些不能與蟒蛇過去了,這樣的對象(該方法需要一個字典參數匹配的C++簽名,被稱爲有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)
你可以發佈一些代碼,看看你的問題是什麼?