如何使用多个 if 语句降低函数的复杂性

How to reduce complexity of function using multiple if statements

我已经为我正在制作的游戏编写了这个函数,但是我觉得通过使用多个嵌套的 if 语句我的想法过于复杂了。有谁知道更简洁的方法吗?我对编码还很陌生,如果这看起来微不足道,我深表歉意。

该函数检查以下内容:

团队 == 0:该行 - 前一行为负值

团队== 1:行-上一行是正值

def check(item, row, col):
    previousRow = 6 
    if item.team == 0:
        if ((row - previousRow) < 0):
            return False
        else:
            return True
    else:
        if item.team == 1:
            if ((row - previousRow) > 0):
                return False
            else:
                return True



这就是 Sourcery 将您的代码缩减为:

def check(item, row, col):
    previousRow = 6
    if item.team == 0:
        return row - previousRow >= 0
    elif item.team == 1:
        return row - previousRow <= 0

如果 item.team 既不是 0 也不是 1,那么您的代码将失败并且不执行显式 return 语句,这相当于返回 None。但是,如果您确定 item.team 将始终为 0 或 1,那么在对 0 的第一次测试失败时对 1 的第二次测试就变得不必要了。

所以在假设item.team永远为0或1的情况下,代码可以简化为:

def check(item, row, col):
    previousRow = 6 
    return row - previous >= 0 if item.team == 0 else row - previousRow <= 0