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(因此允许在函数内继续执行)。