HepMC3 event record library
|
#include <pytypes.h>
Data Structures | |
struct | borrowed_t |
struct | stolen_t |
Public Member Functions | |
PYBIND11_DEPRECATED ("Use reinterpret_borrow<object>() or reinterpret_steal<object>()") object(handle h | |
object (const object &o) | |
Copy constructor; always increases the reference count. More... | |
object (object &&other) noexcept | |
Move constructor; steals the object from other and preserves its reference count. More... | |
~object () | |
Destructor; automatically calls handle::dec_ref() More... | |
handle | release () |
object & | operator= (const object &other) |
object & | operator= (object &&other) noexcept |
template<typename T > | |
T | cast () const & |
template<typename T > | |
T | cast ()&& |
object (handle h, borrowed_t) | |
object (handle h, stolen_t) | |
PyObject * | ptr () const |
Return the underlying PyObject * pointer. More... | |
PyObject *& | ptr () |
const handle & | inc_ref () const & |
const handle & | dec_ref () const & |
operator bool () const | |
Return true when the handle wraps a valid Python object. More... | |
bool | operator== (const handle &h) const |
bool | operator!= (const handle &h) const |
bool | check () const |
Data Fields | |
bool | is_borrowed: handle(h) { if (is_borrowed) inc_ref() |
Protected Attributes | |
PyObject * | m_ptr = nullptr |
Friends | |
template<typename T > | |
T | reinterpret_borrow (handle) |
template<typename T > | |
T | reinterpret_steal (handle) |
\rst Holds a reference to a Python object (with reference counting) Like `handle`, the `object` class is a thin wrapper around an arbitrary Python object (i.e. a ``PyObject *`` in Python's C API). In contrast to `handle`, it optionally increases the object's reference count upon construction, and it always* decreases the reference count when the `object` instance goes out of scope and is destructed. When using `object` instances consistently, it is much easier to get reference counting right at the first attempt.
Copy constructor; always increases the reference count.
Definition at line 238 of file pytypes.h.
References handle::inc_ref().
|
inline |
Destructor; automatically calls handle::dec_ref()
Definition at line 242 of file pytypes.h.
References handle::dec_ref().
|
inlineinherited |
|
inlineinherited |
|
inlineexplicitinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
\rst Resets the internal pointer to ``nullptr`` without decreasing the object's reference count. The function returns a raw handle to the original Python object.
Definition at line 249 of file pytypes.h.
References handle::handle().
|
friend |
\rst Declare that a `handle` or ``PyObject *`` is a certain type and borrow the reference. The target type ``T`` must be `object` or one of its derived classes. The function doesn't do any conversions or checks. It's up to the user to make sure that the target type is correct. .. code-block:: cpp PyObject *p = PyList_GetItem(obj, index); py::object o = reinterpret_borrow<py::object>(p);
or py::tuple t = reinterpret_borrow<py::tuple>(p); // <– p
must be already be a tuple
|
friend |