当我删除'pass'命令并将该类留空时,它会显示错误:
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)
答案 0 :(得分:4)
当您使用冒号结束一行时,您将声明一个复合语句:Python期望该语句后面有一段代码。 pass
关键字表示您不想进入该区块。
由于Python中空格的重要性,不允许使用空语句使代码更易读,更易于解析:冒号后,预计会出现缩进块,如果没有,则表示错误,故事结束。
编辑:顺便说一句,如果你想知道,你会在下一个语句中获得IndentationError
,而不是class
声明,因为Python认为是类声明的主体,并期望它正确缩进。
答案 1 :(得分: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()
答案 2 :(得分:0)
课程必须有一个正文。因此,当你删除pass时,它会将下一个语句作为body进行搜索,但由于它与你的类定义位于同一级别,因此Python说有一个IndentationError。
答案 3 :(得分:0)
python中的代码块必须包含一些代码,所以如果你不想让它做任何事情,你必须放入pass
。因此IndentationError