在非整数可迭代上使用内置的sum()函数

时间:2017-07-23 18:46:57

标签: python sum iterable

有没有办法重载内置函数sum(),以便它可以在用户定义的iterable上工作?假设可以使用+添加iterable中的元素。例如字符串。

具体来说,我希望能够做到以下

S = StrListIterable([<list of strings>])
concatedList = sum(S) # returns a concatenated string of all strings in S

显然我可以在S的元素上使用简单的连接语句来实现这一点,但我想知道Python是否支持重载某些标准内置函数。

1 个答案:

答案 0 :(得分:-1)

start参数提供要添加的初始值。但是:

>>> L = ['foo', 'bar', 'baz']
>>> sum(L, '')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sum() can't sum strings [use ''.join(seq) instead]
>>> ''.join(L)
'foobarbaz'