2010-02-03 21 views
12

Tôi cố gắng để dịch đoạn mã sauKhông trong Boost.Python

d = {} 
d[0] = None 

vào C++ với Boost.Python

boost::python::dict d; 
d[0] = ?None 

Làm thế nào tôi có thể nhận được một đối tượng trong Không Boost.Python?

Trả lời

18

Không có hàm tạo nào là boost::python::object mà cần một PyObject* (từ sự hiểu biết của tôi, một ctor như vậy sẽ làm mất hiệu lực toàn bộ ý tưởng nếu ánh xạ các kiểu Python thành kiểu C++, vì PyObject * có thể là bất kỳ thứ gì). Theo documentation:

object();

Effects: Tạo thời đối tượng quản lý một tham chiếu đến đối tượng Python None.

2

Bạn có thể sử dụng:

d[0] = d.get(0) 

d.get mặc định là None nếu bạn không chỉ định một giá trị mặc định.

Các vấn đề liên quan