[Python-Dev] Deleting with setting C API functions

Serhiy Storchaka storchaka at gmail.com
Tue Nov 24 16:21:21 EST 2015


Slots like PyTypeObject.tp_setattr, PySequenceMethods.sq_ass_item, 
PyMappingMethods.mp_ass_subscript are used not only for setting 
attribute/item value, but also for deleting attribute/item (if value is 
NULL). This is not documented and should be. [1]  Correspondingly public 
API functions like PyObject_SetAttr, PyObject_SetItem, 
PySequence_SetItem, PySequence_SetSlice, PyMapping_SetItemString can be 
used for deleting. But all these functions have special counterparts for 
deleting: PyObject_DelAttr etc.

The question is wherever deleting ability of Set-functions is 
intentional, should we document this or deprecate and then delete?

[1] http://bugs.python.org/issue25701



More information about the Python-Dev mailing list