|
HepMC3 event record library
|
#include <pytypes.h>
Inheritance diagram for object:
Collaboration diagram for object: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 |
1.8.5