--- Bill Janssen <[EMAIL PROTECTED]> wrote: > > My other concern with sum() is just the common > pitfall > > that you do sum(line_of_numbers.split(',')) and > get > > '35' when you intended to write code to get 8. > I'd > > rather have that fail obviously than subtlely. > > Common pitfall? I doubt it. Possible pitfall? > Sure. >
It's a common mistake, for me anyway, to forgot to cast something that I just read from a file into an integer before performing arithmetic on it. But it's usually not a pitfall now. It's just a quick exception that I can quickly diagnose and fix. Try this code under Python 2: name, amount, tip = 'Bill,20,1.5'.split(',') print name + ' payed ' + sum(amount,tip) It will throw an obvious exception. Obviously, this is a pitfall even under current Python: name, amount, tip = 'Bill,20,1.5'.split(',') print name + ' payed ' + amount + tip So then you have three choices on how to improve Python, one of which you sort of alluded to in your other reply: 1) Eliminate the current pitfall by introducing another operator for concatenation. 2) Keep sum() as it is, but make the error message more clear when somebody uses it on strings. Example: Sum() cannot be used to join strings. Perhaps you meant to use ''.join(). 3) Make sum() have a consistent pitfall with the "+" operator, even though English/Python has a lot more latitude with words than punctuation when it comes to disambiguating concepts. IMHO #1 is too extreme, #2 is the best option, and #3 doesn't really solve any practical problems. The arguments for #3 seems to come from consistency/purity vantages, which are fine, but not as important as usability. I concede this entire argument is based on the perhaps shaky premise that *most* people never forget to turn strings into integers, but I fully admit my fallibility in this regard. ____________________________________________________________________________________ Get the Yahoo! toolbar and be alerted to new email wherever you're surfing. http://new.toolbar.yahoo.com/toolbar/features/mail/index.php _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com