从其他库中导入同名函数后,再从标准库中导入函数

2024-04-28 15:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一种好奇心。假设我以交互方式使用IPython,默认情况下导入

from numpy import sum

然后我决定使用标准库中的sum。比如说,做

texts = [['a','good','day'],['a','lovely','day']]
sum(texts, [])

我能做到吗?怎么做

  • 请注意,我不需要一个解决方案来扁平化列表。我想要一个导入标准库的通用解决方案,就像导入任何其他库一样,或者一种绕过函数阴影的方法

Tags: 函数fromimportnumpy列表标准ipython情况
1条回答
网友
1楼 · 发布于 2024-04-28 15:33:06

您可以在__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的sum,除非您在遗留pylab模式下工作,在这种情况下,您不应该这样做。:-)

(2)sum不是一个很好的例子,因为使用sum(something, [])连接列表将显示二次行为,因此通常应该避免

相关问题 更多 >