据我所知,一旦函数返回,函数调用就会终止(即函数内不再执行代码)。我想测试一个if语句并返回一个值,如果它是真的,然后立即退出该函数而不在该函数中执行其他代码。但是,我的日志输出显示我正在输入if,返回,然后继续执行函数中if块后面的代码。一旦遇到与左侧车道关联的return语句,如何退出该功能?
def insanity(self, pts_y, pts_x, lane='left'):
# no pts detected, return saved points from instance
if (len(pts_y) == 0 or len(pts_x) == 0):
if lane == 'left':
self.logger.warning('Sanity Check: left should be returning')
return self.lefty_p, self.leftx_p # return saved instance value
elif lane == 'right':
self.logger.warning('Sanity Check:right should be returning')
return line_fit, self.righty_p, self.rightx_p # return saved instance value
else: self.logger.warning('Sanity Check: Did not properly return buffered points')
self.logger.warning('Should not be getting passed if')
日志输出:
警告 - 完整性检查:左侧应该返回
警告 - 如果
,不应该通过答案 0 :(得分:0)
感谢您的建议并确认控制流程的正确操作!你的说法是正确的,你是对的。问题是疯狂()被多次调用。 if块下面的语句正确执行,因为在后续调用中if块为false(从而允许在函数内继续执行)。