On 6/19/19 8:56 AM, Franklin? Lee wrote:
For example,
if (A <: B or A <: C) and A <: D:
This expression makes makes very clear the high-level logic being used
to determine the relationships between A, B, C, and D that is being
checked, and I just need to lookup what <: means to understand the
nature of the comparisons.
is not much better than
if issubclass(A, (B, C)) and issubclass(A, D):
This expression makes it very clear that a class hierarchy relationship
is being checked, but I still need to reach for the reference manual to
understand the semantics of a tuple being passed as an argument to
issubclass(). It is not at all intuitive that
issubclass(A, (B, C))
means "Is A a subclass of B or a subclass of C?" when it could also mean
"Is A a subclass of both B and C?".
especially if you don't know what either of those mean. You can search
for issubclass, but you can't search for <:.
I generally find Google searches to be useless for most operators and
keywords in any language when you are looking for reference
information. It is generally faster to search for online reference docs
for the language and head straight to the index page. Now, whether
people remember how to use indexes in the age of "search for everything"
is another discussion altogether.
To show that you really do need the feature, you need to show the
complex expressions you write with issubclass that would be improved
by using an operator.
I agree, but as I pointed out above, it doesn't have to be very
complex. I think a real-world example written both ways would be very
helpful to the discussion.
--
-----------------------------------------
From there to here, from here to there,
funny things are everywhere.
-- Theodore Geisel
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message/MVH32K26YS55GJ7LDZ5ZT4Y7VPQTS5ZP/
Code of Conduct: http://python.org/psf/codeofconduct/