Python函数中的缩进和注释

Posted

技术标签:

【中文标题】Python函数中的缩进和注释【英文标题】:Indent and comments in function in Python 【发布时间】:2015-11-04 11:17:47 【问题描述】:

我正在使用 Python 2.7 并编写了以下内容:

定义算术(A): x=1 """ 这里有一些cmets """ 如果 x=1: x=1 elif x=2: x=2 返回 0

但它有缩进问题:

如果 x=1: ^ IndentationError:意外缩进

那么如何在函数中写cmets呢?

【问题讨论】:

【参考方案1】:

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

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

如果您使用以# 开头的面向行的 cmets,则它们不是实际代码的一部分,因此它们的缩进无关紧要。

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

实际上,如果将函数加载到 IDE 中,然后键入 help(arithmetic),则可以看到 "Some comments here"

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

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

【讨论】:

【参考方案2】:

在 Python 中 cmets 需要与其他代码块具有相同的对齐方式,例如

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

【讨论】:

这并不完全正确。注释实际上不需要与函数具有相同的缩进(尽管我认为它可以更容易地知道注释是函数的一部分)文档字符串(第一行中的“””)确实需要对齐 【参考方案3】:

循环,

python 中的注释使用井号# 用于单行 cmets 和用于多行 cmets 的三引号 多线 cmets 的问题是它们有时很挑剔,必须 缩进或者你会得到这个错误

见Way to create multiline comments in Python?

还请注意许多 python 样式指南和项目通常使用 # 表示 cmets。许多文本编辑器和 IDE 提供了注释文本块的快捷方式

【讨论】:

以上是关于Python函数中的缩进和注释的主要内容,如果未能解决你的问题,请参考以下文章

《中小学生Python编程入门指南》2.2 函数缩进注释

Python:我在函数下的注释的最后 3 个引号 (""") 上出现“缩进块”错误。怎么了?

python 数据结构

2.python基础知识 行与缩进注释多行语句

Python代码规范

Python基础例子