Hi, Ivan,

Von: Ivan Pozdeev [mailto:v...@mail.mipt.ru]

> > As far as I can see, the "in" operator should return true if any
> > object in the enumerable is "equal" to the object given as reference:
> 
> Indeed, https://docs.python.org/2/reference/expressions.html#membership-test-
> details states:
> 
> For the list and tuple types, x in y is true if and only if there  exists an
> index i such that x == y[i] is true.
> 
> Now, to check if IronPython honors this.
>
> > assert a in (a,), 'a is in (a,)'
> > assert a in (b,), 'a is in (b,)' # this one fails...
> 
> > As far as I can see via breakpoints, the Equals methods of the objects
> > are never actually called, except on the first assertion with the ==
> > operator.
> 
> My guess is it's cutting corners by comparing hashes instead.

Hm, the GetHashCode() method in my example is hardcoded to return 0, and it is 
not even called (at least, the breakpoint is not hit.

There must be something more subtle...


Best regards

Markus Schaber

CODESYS(r) a trademark of 3S-Smart Software Solutions GmbH

Inspiring Automation Solutions

3S-Smart Software Solutions GmbH
Dipl.-Inf. Markus Schaber | Product Development Core Technology
Memminger Str. 151 | 87439 Kempten | Germany
Tel. +49-831-54031-979 | Fax +49-831-54031-50

E-Mail: m.scha...@codesys.com | Web: http://www.codesys.com | CODESYS store: 
http://store.codesys.com
CODESYS forum: http://forum.codesys.com

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade 
register: Kempten HRB 6186 | Tax ID No.: DE 167014915

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received
this e-mail in error) please notify the sender immediately and destroy this 
e-mail. Any unauthorised copying, disclosure
or distribution of the material in this e-mail is strictly forbidden.
_______________________________________________
Ironpython-users mailing list
Ironpython-users@python.org
https://mail.python.org/mailman/listinfo/ironpython-users

Reply via email to