为什么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会关注文档字符串是否缩进?
答案 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中缩进...