Python报错expected an indented block,游戏开发课程学习求助
解决Python「expected an indented block」错误
你遇到的expected an indented block错误,根源是__iadd__方法定义后没有任何缩进的代码块,直接定义了__add__方法。Python语法要求所有函数/方法声明后必须紧跟缩进的代码逻辑(哪怕是pass占位)。
你的代码中这部分违反了语法规则:
def __iadd__(self,other): def __add__(self,other):
__iadd__没有实现内容,Python解析器在它后面找不到缩进的代码块,就会报错在紧接着的__add__定义行。
解决方案
补全这两个方法的实现逻辑。作为向量类,加法操作对应分量相加,示例实现如下:
def __iadd__(self, other): if isinstance(other, vector): self.x += other.x self.y += other.y else: self.x += other self.y += other return self def __add__(self, other): copy = self.copy() return copy.__iadd__(other)
如果暂时不需要具体逻辑,也可以用pass占位先规避报错:
def __iadd__(self,other): pass def __add__(self,other): pass
修正后代码即可正常运行。
内容的提问来源于stack exchange,提问作者user21130922
相关产品推荐
相关产品推荐

