Python Summe, warum nicht Strings? [geschlossen

Python hat eine eingebaute Funktionsum, was effektiv äquivalent ist zu:

def sum2(iterable, start=0):
    return start + reduce(operator.add, iterable)

für alle Arten von Parametern mit Ausnahme von Zeichenfolgen. Es funktioniert für Zahlen und Listen, zum Beispiel:

 sum([1,2,3], 0) = sum2([1,2,3],0) = 6    #Note: 0 is the default value for start, but I include it for clarity
 sum({888:1}, 0) = sum2({888:1},0) = 888

Warum wurden Zeichenfolgen speziell ausgelassen?

 sum( ['foo','bar'], '') # TypeError: sum() can't sum strings [use ''.join(seq) instead]
 sum2(['foo','bar'], '') = 'foobar'

Ich scheine mich aus diesem Grund an Diskussionen in der Python-Liste zu erinnern, daher wäre eine Erklärung oder ein Link zu einem Thread, der dies erklärt, in Ordnung.

Bearbeite: Mir ist bewusst, dass die Standardmethode @ is"".join. Meine Frage ist, warum die Option zur Verwendung von sum für Zeichenfolgen gesperrt wurde und beispielsweise für Listen kein gesperrt wurde.

Edit 2: Obwohl ich glaube, dass dies bei all den guten Antworten, die ich bekommen habe, nicht nötig ist, lautet die Frage:Warum funktioniert die Summe bei einem iterablen Wert, der Zahlen enthält, oder bei einem iterablen Wert, der Listen enthält, aber nicht bei einem iterablen Wert, der Zeichenfolgen enthält?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage