2013-11-27 22 views
11

是否有一些等同於from __future__ import print_function轉發從Python 2.x的print聲明?從以前的進口print_statement

答案涉及一些ipython魔法,可以讓我在原型製作過程中不需要周圍的零件就能打印,這也是可以接受的。

+2

如果只是用於交互式shell,您根本不需要「打印」,是嗎?只要寫一個表達式,你就可以看到結果。 –

+1

您可能正在尋找Ruby –

+0

@tobias_k是的,但我經常喜歡從函數打印信息,或者在單個單元格內打印多個連續的語句。 – beardc

回答

0

臨時答案(即不涉及領先/將是優選的溶液。):IPython的automatically calls如果線始於/的對象,即使它縮進:

def f(): 
    /print 'foo' 

f() 

foo打印。

編輯:

  1. IPython中也有一個神奇的%autocall功能,以及自動做%autocall 1後調用的函數,因此,鍵入在python 2.X細胞的作用就像printprint 3(雖然這個不幸的是函數定義不是那樣/一樣。

  2. 而且,因爲它是一個功能,而不是一份聲明中,你可以簡單地做p = print,所以後來的/p 'foo'電話會給你幾乎pdb的行爲(我正在做的事情,但沒有在問題中明確說明)。

1

幾點建議供IPython的

from IPython.core.magic import register_line_magic 
@register_line_magic 
def p(line): 
    print(line) 
p "Hi" 

與自動調用定義神奇魔力定義與自動調用關閉

from IPython.core.magic import register_line_magic 
@register_line_magic 
def p(line): 
    print(eval(line)) 
%p "Again" 

你可以建立.config/IPython中/ profile_default /啓動/自動print.py文件爲您提供線魔術功能。