By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
444,002 Members | 1,050 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 444,002 IT Pros & Developers. It's quick & easy.

Check for descriptors (in C)

P: n/a
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?

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.

--
Gabriel Genellina

Jun 3 '07 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Gabriel Genellina <ga*******@yahoo.com.arwrote:
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
Jun 4 '07 #2

P: n/a
En Sun, 03 Jun 2007 21:35:05 -0300, Alex Martelli <al***@mac.comescribió:
>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).
Thanks! It looks obvious now :)

--
Gabriel Genellina

Jun 4 '07 #3

This discussion thread is closed

Replies have been disabled for this discussion.