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

Reply via email to