簡體   English   中英

使用pybind11在c ++中調用python時如何通過引用傳遞參數

[英]How to pass arguments by reference when call python in c++ with pybind11

我正在使用PyBind11運行 Python 解釋器,我需要使用一些指針參數在 c++ 中調用 Python 函數。

根據 pybind11 的文檔,看起來傳遞給 Python 端的參數應該由 Python 解釋器正常釋放,而不是由 c++ 主程序釋放。 但是這一次參數是一個指向靜態對象的指針,它應該被任何人釋放。 如何編寫這樣的綁定/調用?

我知道pybind11::return_value_policy::reference可用於防止返回結果被釋放,但它是用於返回對象,而不是用於參數。

任何提示將不勝感激!

您可以在嵌入式模塊中定義 python 包裝器,並從 python 代碼中訪問它。 然后可以在定義 getter 時指定適當的返回值策略。

然后直接從 python 代碼調用 getter,或者,如果您仍想將其作為參數傳遞,請單獨調用 getter 並將結果存儲為py::object ,您可以將其作為參數傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM