Python中函数的缩进和注释

7

我正在使用Python 2.7,并编写了以下代码:

def arithmetic(A):
    x=1
"""
在这里添加一些注释
"""  
    if x == 1:
        x = 1
    elif x == 2:
        x = 2
    return 0

但是它存在缩进问题:

    if x==1:
    ^
IndentationError: unexpected indent

那么如何在函数中编写注释呢?

3个回答

17

""" xxx """ 是一个 docstring。它可以被用作注释,但它最终成为实际代码的一部分,因此需要缩进:

def arithmetic(A):
    x=1
    """
    Some comments here
    """  
    if x==1:
        x=1
    elif x==2:
        x=2
    return 0

如果您使用以#开头的行注释,那么这些注释不是实际代码的一部分,因此它们的缩进不重要。

有关文档字符串的一个好处是工具可以使用它们,例如显示有关函数的信息。如果您曾经在Python命令提示符下使用help(some_function),则已看到文档字符串。

实际上,如果您将函数加载到IDE中,然后键入help(arithmetic),您可以看到"这里有一些注释"

我稍微修改了您的代码,因为在Python中,=用于赋值,您必须在if语句中使用==来检查相等性。

因此,该代码将编译并按原样运行,但请注意,仅当x已经等于1时,将x设置为1实际上不会做任何事情 :)


1

CYC,

Python中的注释使用井号 # 表示单行注释,使用三个引号表示多行注释。多行注释有时候比较麻烦,必须缩进,否则会出现错误。

参见如何在Python中创建多行注释?

另请注意,许多Python代码风格指南和项目通常使用 # 进行注释。许多文本编辑器和IDE提供缩写以注释块状文本。


1
在Python中,注释需要与其他代码块具有相同的对齐方式,例如:
def arithmetic(A):
    x=1
    """
    Some comments here
    """  
    if x=1:
        x=1
    elif x=2:
        x=2
    return 0

通常人们使用#来进行行内注释,例如:


def func(a):
    a = 5
    # I am a comment
    c = 6

这并不完全正确。注释实际上不需要与函数具有相同的缩进(尽管我认为这使得更容易知道该注释是该函数的一部分)文档字符串("""在第一行)确实需要对齐 - Ray Salemi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接