New submission from Terry J. Reedy <tjre...@udel.edu>: http://www.python.org/dev/peps/pep-3119/#overloading-isinstance-and-issubclass (GvR and Talin) "The primary mechanism proposed here is to allow overloading the built-in functions isinstance() and issubclass(). The overloading works as follows: The call isinstance(x, C) first checks whether C.__instancecheck__ exists, and if so, calls C.__instancecheck__(x) instead of its normal implementation. Similarly, the call issubclass(D, C) first checks whether C.__subclasscheck__ exists, and if so, calls C.__subclasscheck__(D) instead of its normal implementation."
These two new special methods are not documented (for 3.x at least. A post on python-list today verifies that at least .__instancecheck__ was implemented (version not specified). I assume .__subclasscheck__ was also. This issue perhaps applies to 2.6/2.7 also. I suggest either adding "Customizing instance and subclass checks" after "Customizing class creation" or add to that section and rename it to "Customizing class creation and checks" since the needed addition seems too small for its own section. Something like The result of isinstance(object, class) can be modified by giving the *class* a .__instancecheck__(object) method. The result of issubclass(sub,super) can be modified by giving the *superclass* a .__subclasscheck__(sub) method. ---------- assignee: georg.brandl components: Documentation messages: 81956 nosy: georg.brandl, tjreedy severity: normal status: open title: Document __instancecheck__ and __subclasscheck__ versions: Python 3.0, Python 3.1 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue5250> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com