2013-11-27 5 views
11

Есть ли какой-то эквивалент from __future__ import print_function, который передает форматирование инструкции print из python 2.x?из прошлого импорта print_statement

Ответ на вопрос, связанный с магией ipython, позволяющей мне печатать без необходимости окружающих парнеров во время прототипирования, также является приемлемым.

+2

Если это только для интерактивной оболочки, вам не нужно «печатать» вообще, не так ли? Просто напишите выражение, и вы увидите результат. –

+1

Возможно, вы ищете Ruby –

+0

@tobias_k Да, но часто мне нравится печатать информацию из функций или печатать несколько последовательных операторов из одной ячейки. – beardc

ответ

0

Предварительный ответ (Решение, которое не связано с ведущим / будет предпочтительнее.): IPython automatically calls объект, если строка начинается с /, даже если он с отступом:

def f(): 
    /print 'foo' 

f() 

печатает foo.

Edit:

  1. IPython также имеет %autocall магическую функцию, которая, ну, автоматически вызывает функцию, поэтому после выполнения %autocall 1, набрав print 3 в клетке действует как print в Python 2.x (хотя это, к сожалению, не работает в определениях функций, таких как .

  2. Кроме того, поскольку это функция, а не инструкция, вы можете просто сделать p = print, поэтому более поздние /p 'foo' звонки дают вам почти pdb -подобное поведение (то, что я собирался, но это не было явно указано в вопросе).

1

Некоторые предложения для IPython

Определение магии с Autocall на

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

Определение магии с Autocall от

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 для вас.

Смежные вопросы