以下语法无效,因为elif需要紧跟在if块之后:

def get_number(self, bsObj):
    temp = self.get_data('text1', bsObj)
    if temp > -1:
        return temp
    temp = self.get_info('text', bsObj)
    elif temp > -1:
        return temp
    else:
        return 0

如果self.get_info('text', bsObj)小于-1,我只想返回self.get_data('text1', bsObj)的结果。
我可以这样做来解决这个问题,但两次调用同一个函数似乎非常无效:
def get_number(self, bsObj):
    if self.get_data('text1', bsObj) > -1:
        return self.get_data('text1', bsObj)
    elif self.get_info('text', bsObj) > -1:
        return self.get_data('text', bsObj)
    else:
        return 0

最佳答案

您可以使用第二个if

def get_number(self, bsObj):
    temp = self.get_data('text1', bsObj)
    if temp > -1:
        return temp
    temp = self.get_info('text', bsObj)
    if temp > -1:
        return temp
    else:
        return 0

由于第一个if包含一个return语句,如果满足约束,解释器将永远无法到达您的elif行。

10-06 01:31