Carl Banks wrote:
Consider this thought experiment:
class Something(object):
def __radd__(self,other):
return other + "q"
x = ["a","b","c",Something()]
If x were passed to "".join(), it would throw an exception; but if
passed to a sum() without any special casing, it would successfully
return "abcq".
Okay...this is the best argument I've heard for not using
"".join() {Awards Carl one (1) internet} It's a peculiar thing
to do as a programmer, but "".join() certainly produces an
unexpected behavior which I'd say is worse. And a lot of this
discussion has revolved around letting programmers do peculiar
things if they want.
So as of Carl's example, I'm now pretty solidly in the "Stop
throwing an exception, just sum the parts even if it's
inefficient" camp and no longer straddling between that and the
"".join() camp. But I'm definitely still not in the "throwing
exceptions is a good thing" camp.
-tkc
--
http://mail.python.org/mailman/listinfo/python-list