从过去导入print_statement

时间:2013-11-27 18:19:54

标签: python python-3.x printing

是否有一些等同于from __future__ import print_function从python 2.x转发print语句?

在原型制作过程中,我可以接受一些ipython魔法的答案,让我可以打印而不需要周围的parens。

2 个答案:

答案 0 :(得分:1)

对IPython的一些建议

%autocall
print "Hi"

使用自动调用定义魔法

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 / startup / autoprint.py文件。

答案 1 :(得分:0)

临时答案(不涉及前导/的解决方案将是首选。):IPython automatically calls一个对象,如果行以/开头,即使它是缩进的:

def f():
    /print 'foo'

f()

打印foo

编辑:

  1. IPython还具有%autocall魔术功能,可以自动调用函数,因此在执行%autocall 1后,在单元格中键入print 3就像print一样在python 2.x中(虽然遗憾的是在/这样的函数定义中不起作用。

  2. 此外,由于它是一个函数而不是一个语句,你可以简单地执行p = print,因此后来的/p 'foo'调用会给你几乎pdb的行为(就像我一样)但问题并没有在问题中明确说明。