2013-01-23 89 views
0

這是結果如預期,當我在shell中運行ipython3(Python3.2.3):爲什麼ipython3和ipython3筆記本之間的map()有區別?

In [1]: sum(map(int, str(79))) 
Out[1]: 16 

現在,這是在ipython3筆記本相同的代碼:

In [5]: sum(map(int, str(79))) 
Out[5]: <builtins.map at 0x5c26950> 

有什麼不對?

+3

在各種情況下,「repr(map)」和「repr(sum)」是什麼?你有沒有pylab模式或任何環境中設置的任何東西? – minrk

+2

@minrk幾乎肯定是對的 - 這就是如果'sum'由'numpy'' sum'取代的話。 'repr(sum)'不會直接顯示出來(你不會看到'<內建函數sum>',但它本身就是證據),但'sum .__ module__'可能會給出''numpy.core .fromnumeric''。 – DSM

+0

@minrk,@DSM:你說得對!我用'ipython3 notebook --pylab inline'啓動了筆記本。在這種情況下,sum___ module__'確實會給出'numpy.core.fromnumeric',它的行爲與內建版本不同。我需要做些什麼才能獲得內聯圖,但是如果不覆蓋內建函數,那麼會有numpy?乾杯! – sjakobi

回答

1

如果你想使用ipython3筆記本採用--pylab選項,但仍然有所有的內置函數,你可以簡單地做:

In [1]: from builtins import * 

感謝@minrk和@DSM爲我安排在正確的軌道在這裏!

相關問題