Python函数返回后没有结束
Python Function does not end after returning
据我所知,一旦函数 returns,函数调用就会终止(即函数内不再执行任何代码)。我想测试一个 if 语句和 return 一个值,如果它是真的,然后立即退出函数而不在函数中执行额外的代码。但是,我的日志输出显示我正在输入 if,returning,然后继续执行函数中 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')
日志输出:
警告 - 健全性检查:左边应该 returning
警告 - 如果
则不应通过
感谢您的建议并确认控制流程的正确运行!您是正确的,因为该声明已正确返回。问题是 insanity() 被多次调用。 if 块下面的语句正确执行,因为在后续调用中 if 块为 false(因此允许在函数内继续执行)。
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')
日志输出:
警告 - 健全性检查:左边应该 returning
警告 - 如果
则不应通过感谢您的建议并确认控制流程的正确运行!您是正确的,因为该声明已正确返回。问题是 insanity() 被多次调用。 if 块下面的语句正确执行,因为在后续调用中 if 块为 false(因此允许在函数内继续执行)。