CPython Class variable exposed to Python is altered.
Vincent Vande Vyvre
vincent.vande.vyvre at telenet.be
Wed Apr 12 06:05:25 EDT 2017
Le 12/04/17 à 11:47, Peter Otten a écrit :
> Vincent Vande Vyvre wrote:
>
>
>> No, no warning.
>>
>>
>> For the truth, this code is copy-pasted from the doc.
>>
>> https://docs.python.org/3.5//extending/newtypes.html#adding-data-and-methods-to-the-basic-example
> But the example expects objects (the big O), not strings. Following the
> example you need
>
> if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|", kwlist, &name))
> return -1;
>
> and also
>
> static PyMemberDef Test_members[] = {
> {"name", T_OBJECT_EX, offsetof(Test, name), 0,
> "The object name"},
> {NULL} /* Sentinel */
> };
>
> If you want a string instead of an object you must not apply Py_INCREF(),
> you probably have to manage its lifetime yourself.
>
I've just installed a new venv with the 3.6.1 and tested your changes.
And now, that's all right.
I see the devil is into the details ...
Many thanks Peter
Vincent
More information about the Python-list
mailing list