似乎python解释器决定"现在是时候执行你的代码"当它看到换行符时。这有什么解决方法吗?
scala等效于运行":paste"在代码段上。
BTW我们有环境限制所以目的是严格使用python解释器(2.6.X)而不是"更好"像ipython或不同的python版本。
答案 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)