> But given : > > True True Instance w getitem <type 'instance'> > True True NewStyle Instance w getitem <class '__main__.cng'> > True True [] <class UserList.UserList at 0x00F11B70> > True True {} <type 'instance'> > > (Last one is UserDict) > > I can't conceive of circumstances where this is useful without duck > typing *as well*.
Yawn. Give it up. For user defined instances, these functions can only discriminate between the presence or absence of __getitem__. If you're trying to distinguish between sequences and mappings for instances, you're own your own with duck-typing. Since there is no mandatory mapping or sequence API, the operator module functions cannot add more checks without getting some false negatives (your original example is a case in point). Use the function as-is and add your own isinstance checks for your own personal definition of what makes a mapping a mapping and what makes a sequence a sequence. Or better yet, stop designing APIs that require you to differentiate things that aren't really different ;-) Raymond _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com