我如何重构这些功能?

时间:2021-04-12 15:27:02

标签: python-3.x loops for-loop refactoring reusability

def function1():
    for row in rows:
        for column in columns:
            if condition:
                board[row][column] += 1
                # more code

def function2():
    for column in columns:
        for row in rows:
            if condition:
                board[row][column] += 1
                # more code

如果满足条件,两个函数都执行相同的代码。两个函数中的条件相同。有没有办法编写单个函数,这样我就不必重复 board[row][column] += 1# more code

1 个答案:

答案 0 :(得分:1)

如果“更多代码”太长,值得编写一个函数,除了 ordercolumns 之外,还需要 rows 参数,所以它会是:

def function(first_items, second_items, order):
    for f_item in first_items:
        for s_item in second_items:
            if condition:
                if order:
                    board[f_item][s_item] += 1
                else:
                    board[s_item][f_item] += 1
                # more code

然后像这样调用:

function(rows, columns, True) // first case 
function(columns, rows, False) // second case
相关问题