From 48383bfc67438b0e280be732a13dbc77a8dceb8e Mon Sep 17 00:00:00 2001 From: Antoine Pitrou <solipsis@pitrou.net> Date: Sat, 3 Dec 2011 22:30:19 +0100 Subject: [PATCH] Advocate PyTuple_Pack instead of manual building of tuples --- Doc/faq/extending.rst | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Doc/faq/extending.rst b/Doc/faq/extending.rst index d88056498d..676890e27c 100644 --- a/Doc/faq/extending.rst +++ b/Doc/faq/extending.rst @@ -99,12 +99,7 @@ many other useful protocols. How do I use Py_BuildValue() to create a tuple of arbitrary length? ------------------------------------------------------------------- -You can't. Use ``t = PyTuple_New(n)`` instead, and fill it with objects using -``PyTuple_SetItem(t, i, o)`` -- note that this "eats" a reference count of -``o``, so you have to :c:func:`Py_INCREF` it. Lists have similar functions -``PyList_New(n)`` and ``PyList_SetItem(l, i, o)``. Note that you *must* set all -the tuple items to some value before you pass the tuple to Python code -- -``PyTuple_New(n)`` initializes them to NULL, which isn't a valid Python value. +You can't. Use :c:func:`PyTuple_Pack` instead. How do I call an object's method from C? -- 2.40.0