为什么python要求文档字符串缩进?

时间:2016-12-14 07:35:09

标签: python

为什么python接受此代码:

def is_right_triangle(leg1,leg2,hypotenuse):
    """function for checking whether or not set of points makes a right triangle"""
    return leg1 ** 2 + leg2 ** 2  == hypotenuse ** 2

但是在这段代码中,docstring没有缩进

def is_right_triangle(leg1,leg2,hypotenuse):
 """function for checking whether or not set of points makes a right triangle"""
    return leg1 ** 2 + leg2 ** 2  == hypotenuse ** 2

它会抛出“预期的缩进块”错误。

为什么python会关注文档字符串是否缩进?

2 个答案:

答案 0 :(得分:4)

因为docstring只是函数中的另一个表达式。它只是以特殊方式处理,因为它是一个字符串和第一个表达式。

你也可以通过获取函数来看到它:

> a=ast.parse('def f(x):\n    "docstring"\n    return 0')
> a.body[0].body
[<_ast.Expr at 0x7f18bb3e6a20>, <_ast.Return at 0x7f18bb3e6550>]
> a.body[0].body[0].value.s
'docstring'

答案 1 :(得分:1)

因为在20世纪90年代的python开始时,Guido Van Rossum命令函数定义中的所有语句都应该缩进,并且字符串是表达式语句。

只有GvR才能真正回答这个问题。 Python来自名为ABC的玩具语言。文档字符串可能已经在ABC中缩进...