David Ascher <DavidA@ActiveState.com> wrote: > > Despite the negative feedback, I've decided to accept the PEP. The > > most important perceived problem is that newbies tend to write > > > > if x =3D=3D True: ... > > > > where they should write > > > > if x: ... > > > > I believe this problem should be solved by education (the Zen master > > hits the student on the head with a stick, and the student gets > > enlightenment) rather than by holding back what I believe will be a > > useful feature. > > Would it not be "relatively" easy to add a compiler-time warning for > most uses of this dangerous idiom? > > At the very least, the boolean type could do the equivalent of: > > def __eq__(self, other): > if __debug__ and other not in (0,1,True,False): > warnings.warn("Testing of equality is best done by asking > objects whether they're true, not comparing with a boolean", > RunTimeWarning) > return int.__eq__(self, other) > > or something similar? I warning about `x =3D=3D True` wouldn't hurt. But your proposed `__eq__`= certainly would -- don't do that please. Equality testing is useful if one wants to check whether two predicates have the same boolean value. -- = Christian Tanzer tanzer@swing.co.= at Glasauergasse 32 Tel: +43 1 876 62 = 36 A-1130 Vienna, Austria Fax: +43 1 877 66 = 92
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4