mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-22 13:15:12 +00:00
added binding delattr() -> PyObject_DelAttr analogous to hasattr()
This commit is contained in:
parent
d1f64fa920
commit
ccbe68b084
@ -388,6 +388,14 @@ inline bool hasattr(handle obj, const char *name) {
|
|||||||
return PyObject_HasAttrString(obj.ptr(), name) == 1;
|
return PyObject_HasAttrString(obj.ptr(), name) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void delattr(handle obj, handle name) {
|
||||||
|
if (PyObject_DelAttr(obj.ptr(), name.ptr()) != 0) { throw error_already_set(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void delattr(handle obj, const char *name) {
|
||||||
|
if (PyObject_DelAttrString(obj.ptr(), name) != 0) { throw error_already_set(); }
|
||||||
|
}
|
||||||
|
|
||||||
inline object getattr(handle obj, handle name) {
|
inline object getattr(handle obj, handle name) {
|
||||||
PyObject *result = PyObject_GetAttr(obj.ptr(), name.ptr());
|
PyObject *result = PyObject_GetAttr(obj.ptr(), name.ptr());
|
||||||
if (!result) { throw error_already_set(); }
|
if (!result) { throw error_already_set(); }
|
||||||
@ -459,7 +467,6 @@ object object_or_cast(T &&o);
|
|||||||
// Match a PyObject*, which we want to convert directly to handle via its converting constructor
|
// Match a PyObject*, which we want to convert directly to handle via its converting constructor
|
||||||
inline handle object_or_cast(PyObject *ptr) { return ptr; }
|
inline handle object_or_cast(PyObject *ptr) { return ptr; }
|
||||||
|
|
||||||
|
|
||||||
template <typename Policy>
|
template <typename Policy>
|
||||||
class accessor : public object_api<accessor<Policy>> {
|
class accessor : public object_api<accessor<Policy>> {
|
||||||
using key_type = typename Policy::key_type;
|
using key_type = typename Policy::key_type;
|
||||||
|
Loading…
Reference in New Issue
Block a user