3 回答

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

TA貢獻1906條經驗 獲得超10個贊
只需迭代第一個函數的兩個選擇:
data_generating_function() for func1 in (function1a, function1b): func1() function_2() function_3() function_4() function_5()

TA貢獻1799條經驗 獲得超6個贊
如果我誤解了這個問題,我深表歉意,但你能不能執行以下操作:
單元格 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)
該解決方案假設:
您定義帶有返回值的函數
傳遞結果并不“昂貴”
如果不是后者,您也可以將結果保留在文件中。
為了減少 function_1 中的代碼重復,您可以添加一個在兩個版本之間切換的參數。
添加回答
舉報