-1

当我删除“通过”命令并将类留空时,它显示错误:

File "class_distance.py", line 6
    point1=distance()   
         ^
IndentationError: expected an indented block

该代码预计将计算两点之间的距离。这是代码:

import math 
class distance(object):
     pass


point1=distance()   
point2=distance()
point1.x=input("x=")
point2.x=input("x=")
point1.y=input("y=")
point2.y=input("y=")


def main(point1,point2):


    dx = point1.x - point2.x
    dy = point1.y - point2.y
    dist = math.sqrt(dx**2 + dy**2)
    print dist

main(point1,point2)
4

4 回答 4

4

当你用冒号结束一行时,你声明了一个复合语句:Python 期望在该语句之后有一段代码。pass关键字是您表示您还不想进入区块的方式。

由于空格在 Python 中很重要,不允许空语句使代码更具可读性和更易于解析:在冒号之后,需要一个缩进块,如果没有,这是一个错误,故事结束。

编辑:顺便说一句,如果你想知道,你会IndentationError在下一个语句上得到一个,而不是在class声明上,因为 Python 认为这是类声明的主体,并希望它被正确缩进。

于 2013-05-26T06:52:27.207 回答
2

这是因为 Python 在它看到之后期待类体

class distance(object):

特别是冒号表示我们将缩进下一行并输入类的主体。但是,如果我们不缩进并继续编程,Python 会生气并抱怨我们跳过了类主体。

为了允许空块,有一个关键字pass基本上充当类或函数或任何通常去的地方的占位符。

class distance(object):
    pass # Let's python know we didn't forget the class body
keep.on.programming()
于 2013-05-26T06:53:05.570 回答
0

类必须有一个主体。因此,当您删除传递时,它会搜索下一条语句作为正文,但由于它与您的类定义处于同一级别,Python 会说存在 IndentationError。

于 2013-05-26T06:52:25.443 回答
0

python 中的代码块必须包含一些代码,所以如果你不想让它做任何事情,你必须把pass. 因此IndentationError

于 2013-05-26T20:31:22.560 回答