簡體   English   中英

如何使用多個 if 語句降低 function 的復雜性

[英]How to reduce complexity of function using multiple if statements

我已經為我正在制作的游戲編寫了這個 function,但是我覺得使用多個嵌套的 if 語句使我的想法過於復雜。 有誰知道這樣做更簡潔的方法? 如果這看起來微不足道,我對編碼很抱歉。

function 檢查以下內容:

Team == 0 :該行 - 上一個行是負值

Team == 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM