On Sat, Aug 20, 2016 at 3:54 PM Michael Selik <michael.selik@gmail.com> wrote:
On Fri, Aug 19, 2016 at 8:55 AM Neil Girdhar <mistersheik@gmail.com> wrote:


On Friday, August 19, 2016 at 8:36:39 AM UTC-4, Emanuel Barry wrote:

Arek Bulski wrote:

> Could use all(a==b for zip(seq,seq2))

 

Or even `all(itertools.starmap(operator.eq, zip(a, b)))` if you prefer, but this isn’t about how easy or clever or obfuscated one can write that; it’s about convenience. ABCs expose the lowest common denominator for concrete classes of their kind, and having __eq__ makes sense for Sequence (I’m surprised that it’s not already in).

 

I think we can skip the Python-ideas thread and go straight to opening an issue and submitting a patch :) Neil, care to do that?

 

-Emanuel


tuples and lists are both Sequences, yet are not equal to each other.

    py> [1] == (1,)
    False 

As long as you treat them as an ABC.Sequences, they _should_ be equal. One can think of a static method Sequence.equals(a, b) for that purpose. 

Of course, that's not how it's done in dynamic languages such as Python (or Java!), so implementing the default __eq__ this way will break symmetry.

~Elazar