如何在解释器中测试包含空行的python代码

时间:2014-10-22 13:46:32

标签: python

似乎python解释器决定"现在是时候执行你的代码"当它看到换行符时。这有什么解决方法吗?

scala等效于运行":paste"在代码段上。

BTW我们有环境限制所以目的是严格使用python解释器(2.6.X)而不是"更好"像ipython或不同的python版本。

1 个答案:

答案 0 :(得分:0)

作为解决方法,您可以打开block,例如try - except块或if块:

>>> if True:
...  #my statements
...  #which I don't want to execute right now
...  pass # or do_stuff()
... 

或将你的snipplet包装在一个函数中然后调用它。

显而易见的解决方案是使用具有粘贴支持的解释器shell,例如ipython(包含%paste%cpaste),但不幸的是,这不是一个选项为了你;默认的python shell没有类似的机制AFAIK。

另一种解决方法是将snipplet保存到临时文件中并调用execfile(filename),或者将exec(<pastedcode>)用于小snipplet。

实际上,合并exec,滥用多行字符串作为heredocs,以及隐式_可能是最好的解决方法,看起来非常方便:

>>> """
... x = 5
... y = x**2
... print(x,y)
... """
'\nx = 5\ny = x**2\nprint(x,y)\n'
>>> exec(_)
5 25
>>> x, y # above code was executed in current scope, see?
(5, 25)