Bruno Desthuilliers wrote:

Boris Borcic a écrit :

Given the ABC innovation, maybe an infix syntax for isinstance() would
be good.
Possibilities :
- stealing "is" away from object identity. As a motivation, true use
cases for testing object identity are rare;

"x is None" is a *very* common test. (...)
Testing a class identity often happens when writing metaclasses

This kind-of-talks for Terry's proposition : adding a __contains__ to
type,

I said "type identity testing", not isinstance() or issubclass() testing.

Yes, but in the thread's context [of choosing between "is" and "in" as infix syntax for isinstance()] you were in effect raising as an objection to the first choice that it meant conflict with this use case [of "type identity testing" which is "common when writing metaclasses"].

This implied "writing metaclasses" as a background experience to decide the issue, what in turn implied a preference for the second solution ("x in Number") on *two* counts.

First because it was a proposed alternative to what you were objecting to, and
Second because "x in Number" has this most simple "metaclassy" solution.

(...)

And anyway, I don't see how any of the above address the point that your premise that "true identity testing is rare" is just wrong...


I wrote "true use cases for identity testing are rare", it was more of an auxiliary assertion that a premise, and nothing you objected really disproved it (for an adequate definition of "true use case").

* writing metaclasses is rare, and so is testing class identity in its context.

* "x is None" is arguably not a "true use case", in the sense that it is a case of testing identity against a constant that

- doesn't compare equal to anything else
- is the single instance of a singleton class

so that there exists both an equality test and an isinstance() test that are equivalents to the identity test.

Cheers, BB






--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to