diff options
author | Victor Stinner <vstinner@python.org> | 2021-04-10 22:17:39 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-10 22:17:39 (GMT) |
commit | 09bbebea163fe7303264cf4069c51d4d2f22fde4 (patch) | |
tree | af9449e38983bab8ebf5a667c149cb0d33e05543 /Include/object.h | |
parent | 6e468cb16bde483ad73c1eb13b20a08d74e30846 (diff) | |
download | cpython-09bbebea163fe7303264cf4069c51d4d2f22fde4.zip cpython-09bbebea163fe7303264cf4069c51d4d2f22fde4.tar.gz cpython-09bbebea163fe7303264cf4069c51d4d2f22fde4.tar.bz2 |
bpo-43753: Add Py_Is() and Py_IsNone() functions (GH-25227)
Add the Py_Is(x, y) function to test if the 'x' object is the 'y'
object, the same as "x is y" in Python. Add also the Py_IsNone(),
Py_IsTrue(), Py_IsFalse() functions to test if an object is,
respectively, the None singleton, the True singleton or the False
singleton.
Diffstat (limited to 'Include/object.h')
-rw-r--r-- | Include/object.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Include/object.h b/Include/object.h index 3138db0..695f015 100644 --- a/Include/object.h +++ b/Include/object.h @@ -122,6 +122,11 @@ typedef struct { #define _PyVarObject_CAST_CONST(op) ((const PyVarObject*)(op)) +// Test if the 'x' object is the 'y' object, the same as "x is y" in Python. +PyAPI_FUNC(int) Py_Is(PyObject *x, PyObject *y); +#define Py_Is(x, y) ((x) == (y)) + + static inline Py_ssize_t _Py_REFCNT(const PyObject *ob) { return ob->ob_refcnt; } @@ -586,6 +591,10 @@ Don't forget to apply Py_INCREF() when returning this value!!! PyAPI_DATA(PyObject) _Py_NoneStruct; /* Don't use this directly */ #define Py_None (&_Py_NoneStruct) +// Test if an object is the None singleton, the same as "x is None" in Python. +PyAPI_FUNC(int) Py_IsNone(PyObject *x); +#define Py_IsNone(x) Py_Is((x), Py_None) + /* Macro for returning Py_None from a function */ #define Py_RETURN_NONE return Py_NewRef(Py_None) |