【发布时间】:2013-01-23 23:56:46
【问题描述】:
这是我在 shell 中运行 ipython3 (Python3.2.3) 时预期的结果:
In [1]: sum(map(int, str(79)))
Out[1]: 16
现在这是 ipython3 笔记本中的相同代码:
In [5]: sum(map(int, str(79)))
Out[5]: <builtins.map at 0x5c26950>
怎么了?
【问题讨论】:
-
repr(map)和repr(sum)在每种情况下是什么?你有 pylab 模式或在这两种环境中设置的任何东西吗? -
@minrk 几乎可以肯定是正确的——如果您将
sum替换为numpysum,您会得到这样的结果。repr(sum)不会直接显示这个(虽然你不会看到<built-in function sum>,这本身就是证据),但sum.__module__可能会给出'numpy.core.fromnumeric'。 -
@minrk, @DSM:你是对的!我用
ipython3 notebook --pylab inline启动了笔记本。在那种情况下,sum.__module__确实会给出'numpy.core.fromnumeric',它的行为与内置版本不同。我需要做什么才能拥有内联图,但 numpy 不会覆盖内置函数?干杯!
标签: python-3.x ipython ipython-notebook