pybind11 py::list 函数内使用value
时间: 2024-01-27 07:14:10 浏览: 73
在pybind11中,可以使用py::list来创建Python列表,并且可以在函数内部使用value()方法来获取列表中的值。
以下是一个使用pybind11创建Python列表并在函数内部使用value()方法的示例:
```cpp
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
namespace py = pybind11;
void print_list(py::list list) {
for (int i = 0; i < list.size(); i++) {
int value = py::cast<int>(list[i].attr("value")());
std::cout << "Value at index " << i << ": " << value << std::endl;
}
}
PYBIND11_MODULE(example, m) {
m.def("print_list", &print_list, "Print a list");
}
```
在上面的示例中,我们定义了一个名为print_list的函数,它接受一个py::list作为参数。在函数内部,我们使用value()方法获取列表中每个元素的值,并打印出来。
在Python中使用这个函数可以这样做:
```python
import example
my_list = [1, 2, 3, 4, 5]
example.print_list(my_list)
```
输出结果将是:
```
Value at index 0: 1
Value at index 1: 2
Value at index 2: 3
Value at index 3: 4
Value at index 4: 5
```
阅读全文