Tim Peters <tim.one@comcast.net> wrote: > [Christian Tanzer] > > ... > > If str and repr were to behave differently from each other, I'd expec= t > > repr(True) to return "1" and str(True) to return "True". Interchangin= g > > that seems strange. > > We try to ensure that eval(repr(x)) reproduce x whenever reasonably > possible. That best way to do that here is for repr(True) to return > 'True'. I understood the motivation for `repr(bool(1)) =3D=3D "True"`. What I wanted to say is that having repr return a readable result and str return a result looking like an internal representation runs counter to the usual conventions used for repr and str. > > OTOH, I'm worried about backwards compatibility. > > That's the only reason for str(True) to return '1'. In this case, I'd value consistency between repr/str higher than backwards compatibility. > How about str(True) return '1' but str(False) return 'False'? That's > what a committee would compromise on <wink>. Any self respecting committee would try harder and probably come up with a really symmetric compromise: value str repr True '1' 'True' False 'False' '0' <1.4. wink> > > How will bool influence '__nonzero__'? Currently, Python insists that= > > '__nonzero__ should return an int'. Will this be changed to 'should > > return a bool'? > > I hope so. > > > As that would break existing code, I hope not. > > No, "should" !=3D "must". Fine display of sophisticated hair splitting, but: >>> class Foo: ... def __nonzero__(self): return None ... >>> f =3D Foo () >>> not f Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: __nonzero__ should return an int >>> I don't care about `should` vs. `must` as long as the new and improved Python won't spit an exception at __nonzero__ code returning an int instead of a bool. > Guido won't call code that returns an int here broken, although he > might call it deprecated, and leave you wondering when the hammer will > drop <wink>. Nice tease. But Guido's hammer with regard to future strictification of bool is exactly what makes me uneasy. -- = 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