Joe*_*sin 27 python testing text-editor copy-paste indentation
我是Python的新手.
简而言之:
在脚本编写过程中,我一直想通过从我的文本编辑器复制/粘贴一些代码行到命令行Python解释器来测试我的程序的一小部分.当这些行缩进时(例如因为它们是函数的一部分),我希望解释器忽略或不检查缩进,这样我就不必在复制/粘贴之前取消它们.那可能吗?
更多细节:
这是我的意思的简化示例:
假设我的文本编辑器包含当前正在开发的以下模块:
def MyFunc(arg):
    .../...
    if arg == 1:
        print "This is my function called with value 1."
        print "Done."
    else:
        print "This is my function called with value other than 1."
        print "Nothing else to say."
    .../...
Run Code Online (Sandbox Code Playgroud)
让我们说我只是想直接测试2个第一print行(上面代码的第4行和第5行),以便快速检查我的模块的至少部分是否按预期运行.如果我同时选择两条线,我将至少选择第二条线的缩进(如果不是两条线).粘贴在命令行时,我会收到该缩进的错误.
解释器的一个简单强制行为是它只是忽略缩进.
更强大的行为是要求口译员不检查缩进.即如果有缩进,那么解释器应该尝试使用它,这样我仍然可以复制/过去甚至是一段结构化的代码(例如上面代码的第3到8行).但是如果有缩进错误,它会忽略它们.
如果没有办法在这里做我要求的东西,那么有没有办法做类似的事情:一种快速检查代码片段的简单方法,而不必每次只想调整小部分时运行整个程序它在这里和那里.
注意1:unindenting 不是我正在寻找的解决方案.
注意2:拥有一个解释器和一个复制/粘贴功能提供了一种非常强大的方法来轻松测试代码,但是如果无法找到转变,Python的显式缩进机制对于如此处所述的解释器的使用是一个很大的缺点.会很遗憾.
fal*_*tru 45
在这种情况下,我使用以下技巧(前置if 1:):
>>> if 1:
...     print 1
...
1
Run Code Online (Sandbox Code Playgroud)
        Woo*_*ble 33
ipython %cpaste函数允许您粘贴缩进代码并正常工作:
In [5]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:        print "This is my function called with value 1."
:        print "Done."
:^D<EOF>
This is my function called with value 1.
Done.
Run Code Online (Sandbox Code Playgroud)
        你能避免复制标签吗?
Notepad ++和Visual Studio允许Shift + Alt在选择文本时按住矩形选区.
无论你使用什么编辑器也可能允许这样做.
是的,这并没有按照要求回答您的问题,但也许它可以解决您的问题.
编辑:
gvim允许包含所有行内容的矩形选择Ctrl-l v Ctrl-q $ Shift-Down or Up arrow.感谢Joel澄清这一点.
此链接解释并提供了vim中的其他替代方案:http: //vim.wikia.com/wiki/Add_trailing_blanks_to_lines_for_easy_visual_blocks
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5815 次  |  
        
|   最近记录:  |