Thomas Wouters wrote: > > ... > > The right hand side of the operation determines what the result is ? No, either side determines what the result is. This is not magic. It's just like floating point coercion or complex number coercion. > Somehow > I find that confusing and counter-intuitive, but perhaps I'm too used to > __add__ vs. __radd__ ;) This can be easily defined in terms of add and radd: class PaulsString: def __init__( self, str ): self.str=str def __add__( self, foo ): return self.str + str( foo ) def __radd__( self, bar ): return str( bar ) + self.str print PaulsString("abcdef")+5 print open+PaulsString("ghijkl") abcdef5 <built-in function open>ghijkl Here's an even simpler definition: class PaulsString: def __init__( self, str ): self.str=str def __coerce__( self, other ): return (self.str, str( other )) Ping says: > As it stands, with both 8-bit strings and Unicode strings, i think > this would result in too much hidden complexity -- thinking about this > can wait until we have only one string type. I don't see any hidden complexity. Python has features specifically designed to allow this sort of thing on a per-type basis. -- Paul Prescod - Not encumbered by corporate consensus Pop stars come and pop stars go, but amid all this change there is one eternal truth: Whenever Bob Dylan writes a song about a guy, the guy is guilty as sin. - http://www.nj.com/page1/ledger/e2efc7.html
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