3 回答

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
您應(yīng)該盡可能避免修改或直接迭代函數(shù)。在這種情況下,最好的辦法是添加一個(gè)布爾參數(shù)來function1指定要運(yùn)行的函數(shù)版本。它看起來像這樣:
def function1(isFirstTime):
if isFirstTime:
# do stuff the first time
pass
else:
# do stuff the second time
pass
然后您可以迭代這些函數(shù):
data_generating_function()
for b in (True, False):
function1(b)
function2()
function3()
# ...

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
只需迭代第一個(gè)函數(shù)的兩個(gè)選擇:
data_generating_function() for func1 in (function1a, function1b): func1() function_2() function_3() function_4() function_5()

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果我誤解了這個(gè)問題,我深表歉意,但你能不能執(zhí)行以下操作:
單元格 1:
# define all functions
單元 2:
dataset = data_generating_function()
單元 3:
# Run version 1 of function 1 on dataset
result_1_1 = function_1_v1(dataset)
result_2_1 = function_2(result_1_1)
result_3_1 = function_3(result_2_1)
function_4(result_3_1)
單元 4:
# Run version 2 of function 1 on dataset
result_1_2 = function_1_v2(dataset)
result_2_2 = function_2(result_1_2)
result_3_2 = function_3(result_2_2)
function_4(result_3_2)
該解決方案假設(shè):
您定義帶有返回值的函數(shù)
傳遞結(jié)果并不“昂貴”
如果不是后者,您也可以將結(jié)果保留在文件中。
為了減少 function_1 中的代碼重復(fù),您可以添加一個(gè)在兩個(gè)版本之間切換的參數(shù)。
添加回答
舉報(bào)