注释掉一个Python代码块

有没有一种机制来评论大块的Python代码?

现在,我可以看到注释代码的唯一方法是每行都用# ,或者用三个引号将代码括起来: """

问题在于,在每一行之前插入#是很麻烦的, """使我想用作注释的string显示在生成的文档中。

看完所有评论后,答案似乎是“不”。

Python没有这样的机制。 在每行前加一个#来阻止评论。 欲了解更多信息,请参阅PEP 8 。 大多数Python IDE支持一种机制来自动为您执行块注释和磅符号。 例如,在我的机器上的IDLE中,它是Alt + 3Alt + 4

不要使用三重引号; 正如您发现的那样,这是针对文档string而不是阻止评论的,尽pipe它具有类似的效果。 如果你只是暂时评论一下,这可以作为临时措施。

我所知道的唯一治疗方法是编辑。 抱歉。

在不会误认为文档string的上下文中隐藏三重引号,例如:

 ''' ...statements... ''' and None 

要么:

 if False: ''' ...statements... ''' 

你可以做这个没有三重引号的唯一方法是添加一个:

 if False: 

然后缩进所有的代码。 请注意,代码仍然需要有适当的语法。


许多Python IDE可以为每个选定的行添加# ,并在取消注释时删除它们。 同样,如果你使用vi或Emacs,你可以创build一个macros来为你做一块代码。

Mx注释区域,在Emacs的Python模式下。

至less在VIM中,您可以使用块可视模式(非可视VIM中的CTRL+V )select要插入的第一列文本,然后在每行之前使用以下序列前置一个#

 I#<esc> 

在“块可视”模式下, I将移动到插入模式,光标位于第一行的块之前。 插入的文本在块的每一行之前被复制。

在JetBrains Mac上的PyCharm使用命令 + /来评论/取消注释选定的代码块。 在Windows上,使用CTRL + /

在vi中 :

  • 转到块的顶部并用字母a标记。
  • 转到块的底部并用字母b标记

然后做

 :'a,'bs!^!#! 

在Eclipse + PyDev中 ,Python块注释与Eclipse Java块注释类似; select你想评论的行,并使用Ctrl + /来评论。 取消注释块,做同样的事情。

是的,有(取决于你的编辑器)。 在PyDev (和PyDev在Aptana Studio中 ):

  • Ctrl + 4 – 注释选定的块

  • Ctrl + 5 – 取消select块的注释

注释掉Python代码(理解为被解释器忽略的代码)的唯一机制是# 。

正如你所说,你也可以使用string文字 ,这是不会被解释器忽略的,但对于程序执行可能是完全不相关的。

在使用Visual Studio的Python工具的Visual Studio中 ,可以通过Ctrl + KCtrl + CCtrl + KCtrl + U取消注释块。

我在Windows机器上使用Notepad ++ ,select你的代码,inputCTRL-K 。 要取消注释,请select代码并按Ctrl + Shift + K。

顺便提一下,Notepad ++可以很好地作为Python编辑器使用。 随着自动完成,代码折叠,语法突出,等等。 而且在讲话和啤酒方面都是免费的!

在使用PyDev的 Eclipse中,您可以select一个代码块并按Ctrl +

 comm=''' Junk, or working code that I need to comment. ''' 

你可以用你自己select的variables来代替comm ,这个variables可能更短,易于触摸,而且你知道在你的程序中没有(也不会)。 例如: xxxoonullnil

另一种基于编辑器的解决scheme:Emacs中的文本“矩形”。

突出显示你想注释掉的代码,然后Cxrt#

取消注释代码:突出显示,然后Cxrk

我每天都用这个。 (当然,分配给热键。)

这个和强大的正则expression式search/replace是我容忍Emacs的其他“怪癖”的原因。

在Eric4上有一个简单的方法:select一个块,键入Ctrl + M来注释整个块或者Ctrl + alt + M来取消注释。

三重引号对我来说是好的。 您可以使用'''foo'''作为文档,使用“”“bar”“”作为注释,反之亦然,以使代码更具可读性。

使用像SciTe一样好的编辑器,select你的代码,按Ctrl + Q完成。

如果您没有支持块注释的编辑器,则可以在代码块的开始和结尾使用三重引号string来“有效”地注释它。 但这不是最好的做法。