Gabriel Genellina <[EMAIL PROTECTED]> wrote: > For most types, there are macros like PyXxxx_Check and > PyXxxx_CheckExact. But not for descriptors, and I want to test if a > certain object is a descriptor or not. May I define > PyMethodDescr_Check, by example, along the lines of similar checks, or > the fact that they are not already defined implies that they should > not be tested that way?
"Being a descriptor" == "belonging to a type having a __get__ method", more or less. There is NO relationship among such types, just a commonality of methods they make available. Descriptor is a protocol, common to a family of otherwise unrelated types, not a type. All of the PyXXX_Check macros are instead based on *types*, not protocols. > My actual use case: I want to check if an object (instance of a class > that inherits from file) still uses the original write method or has > overriden it. I'd check for identity between type(o).write and file.write -- seems a more direct expression of that thought (and implementable with the C-API just as well as with pure Python). Alex -- http://mail.python.org/mailman/listinfo/python-list