首页 文章

在Python中创建多行注释的方法?

提问于
浏览
891

我最近开始学习Python,但我找不到如何实现多行注释 . 大多数语言都有块注释符号

/* 

*/

我在Python中试过这个,但它会抛出一个错误,所以这可能不是正确的方法 . Python实际上是否具有多行注释功能?

14 回答

  • 65

    AFAIK,Python没有块注释 . 要评论单个行,可以使用 # 字符 .

    如果您使用Notepad++there is a shortcut for block commenting . 我敢肯定像gVimEmacs这样的人有类似的功能 .

  • 22

    如何评论:

    '''
       Comment what you want here
    '''
    

    要么

    """
        Comment what you want here
     """
    
  • 27

    如果你发表评论

    """
    long comment here
    """
    

    在脚本中间,python / linters不会重新识别它 . 折叠将被搞砸,因为上述评论不是标准建议的一部分 . 它更好用

    # long comment
    # here.
    

    如果您使用 vim ,则可以使用https://github.com/tpope/vim-commentary这样的插件,通过按 Vjgcc 自动注释掉长行注释 . 其中 Vj 选择2行代码, gcc 注释掉它们 .

    如果您不想使用上面的插件,您可以使用搜索和替换之类的

    :.,.+1s/^/# /g .

    这将用 # 替换当前和下一行的第一个字符 .

  • 2

    在Python 2.7.13上:

    单:

    "A sample single line comment "
    

    多行:

    """
    A sample
    multiline comment
    on PyCharm
    """
    
  • 3

    多行评论没有这样的特征 . #是评论单行代码的唯一方法 . 很多人回答'''评论''这是他们的解决方案 . 虽然它似乎工作但在python中内部'''将包含的行作为常规字符串,解释器不会忽略使用#的注释 .

    Check official documentation here

  • 2

    python中实际上不存在多行注释 . 下面的示例包含一个未分配的字符串,由Python验证语法错误 . 像 NotePad++ 这样的文本编辑很少为我们提供评论书面代码或文字的快捷方式

    def foo():
        "This is a doc string."
        # A single line comment
        """
           This 
           is a multiline
           comment/String
        """
        """
        print "This is a sample foo function"
        print "This function has no arguments"
        """
        return True
    

    另外,CTRL K是 Notepad++ 中的一个快捷方式来阻止评论,它会在选择下的每一行前面添加一个 # . CTRL SHIFT K用于阻止取消注释 .

  • 5

    从接受的答案......

    您可以使用三引号字符串 . 当它们不是文档字符串(类/函数/模块中的第一件事)时,它们将被忽略 .

    这是不正确的 . 与注释不同,三引号字符串仍然被解析,并且必须在语法上有效,无论它们出现在源代码中的何处 .

    如果您尝试运行此代码...

    def parse_token(token):
        """
        This function parses a token.
        TODO: write a decent docstring :-)
        """
    
        if token == '\\and':
            do_something()
    
        elif token == '\\or':
            do_something_else()
    
        elif token == '\\xor':
            '''
            Note that we still need to provide support for the deprecated
            token \xor. Hopefully we can drop support in libfoo 2.0.
            '''
            do_a_different_thing()
    
        else:
            raise ValueError
    

    你会得到......

    ValueError: invalid \x escape
    

    ...在Python 2.x或...上

    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 79-80: truncated \xXX escape
    

    ...在Python 3.x上 .

    进行解析器忽略的多行注释的唯一方法是......

    elif token == '\\xor':
        # Note that we still need to provide support for the deprecated
        # token \xor. Hopefully we can drop support in libfoo 2.0.
        do_a_different_thing()
    
  • 29

    不幸的是,字符串化 not always 可以用作评论!因此,坚持标准在每行前面加上#是更安全的 .

    这是一个例子:

    test1 = [1,2,3,4,]#test1包含4个整数

    test2 = [1,2,'''3, 4,'''] #test2包含2个整数 and the string '3, 4,'

  • 10

    您可以使用三引号字符串 . 当它们不是文档字符串(类/函数/模块中的第一件事)时,它们将被忽略 .

    '''
    This is a multiline
    comment.
    '''
    

    (确保适当缩进前导 ''' 以避免 IndentationError . )

    Guido van Rossum(Python的创建者)tweeted this作为"pro tip" .

    但是,Python的样式指南,PEP8,favors using consecutive single-line comments,这也是许多项目中的内容 . 编辑通常有一个快捷方式来轻松完成这项工作 .

  • 3

    Python确实有multiline string/comment syntax,除非用作文档字符串,multiline strings generate no bytecode - 就像 # -prepended评论一样 . 实际上,它的行为与评论完全相同 .

    另一方面,如果你说这个行为必须在官方文档中记录为真正的注释语法,那么是的,你说这不是作为语言规范的一部分保证是正确的 .

    在任何情况下,您的编辑器也应该能够轻松地注释掉所选区域(通过在每条线的前面放置一个 # ) . 如果没有,请切换到可执行的编辑器 .

    没有特定文本编辑功能的Python编程可能是一种痛苦的经历 . 找到正确的编辑器(并知道如何使用它)可以对Python编程体验的感知方式产生重大影响 .

    编辑器不仅能够注释掉所选区域,而且还应该能够轻松地向左右移动代码块,并且当您按Enter键时应自动将光标置于当前缩进级别 . 代码折叠也很有用 .


    为了防止链接衰减,这里是Guido van Rossum's tweet的内容:

    @BSUCSClub Python提示:您可以使用多行字符串作为多行注释 . 除非用作文档字符串,否则它们不会生成代码! :-)

  • 3

    好吧,你可以尝试这个(当运行引用时,第一个问题的输入应该引用 ' ):

    """
    print("What's your name? ")
    myName = input()
    print("It's nice to meet you " + myName)
    print("Number of characters is ")
    print(len(myName))
    age = input("What's your age? ")
    print("You will be " + str(int(age)+1) + " next year.")
    
    """
    a = input()
    print(a)
    print(a*5)
    

    无论 """ 之间的任何内容都会被评论 .

    如果您正在寻找单行评论,那么它是 # .

  • 0

    在Python 2.7中,多行注释是:

    """
    This is a
    multilline comment
    """
    

    如果你在课堂上,你应该正确地选中它 .

    例如:

    class weather2():
       """
       def getStatus_code(self, url):
           world.url = url
           result = requests.get(url)
           return result.status_code
       """
    

    我希望它有所帮助!

  • 0

    我认为它没有,除了不处理多行字符串 . 但是,大多数(如果不是全部)Python IDE都有一个用于“注释掉”多行代码的快捷键 .

  • 1421

    Python中的多行注释:对我来说,'''和“”都有效

    例如:

    a = 10
    b = 20
    c = a+b
    '''
    print ('hello')
    '''
    print ('Addition is : ',a+b)
    

    例如:

    a = 10
    b = 20
    c = a+b
    """
    print ('hello')
    """
    print ('Addition is : ',a+b)
    

相关问题