这是一种好奇心。假设我以交互方式使用 IPython ,默认导入
from numpy import sum
之后我决定使用标准库中的sum
。说,做一些像
texts = [['a','good','day'],['a','lovely','day']]
sum(texts, [])
我能这样做吗?怎么样?
答案 0 :(得分:2)
您可以在__builtin__
(Python 2)或builtins
(Python 3)下访问它:
>>> from numpy import sum
>>> texts = [['a','good','day'],['a','lovely','day']]
>>> sum(texts, [])
Traceback (most recent call last):
[...]
TypeError: cannot perform reduce with flexible type
>>> __builtin__.sum(texts, [])
['a', 'good', 'day', 'a', 'lovely', 'day']
>>> from __builtin__ import sum
>>> sum(texts, [])
['a', 'good', 'day', 'a', 'lovely', 'day']
但有两点:
(1)IPython默认不导入numpy的总和 - 除非你在遗留pylab
模式下工作,在这种情况下你不应该。 : - )
(2)sum
不是一个很好的例子,因为使用sum(something, [])
连接列表会显示二次行为,因此通常应该避免。