我正在用Python寫一個數據庫遷移腳本,其中我創建了一個可以在不同版本之間遷移數據庫的字典。我目前做如下:如何在Python中創建函數的字典?
def from1To2():
pass # migration script here
def from2To1():
pass # migration script here
# etc
migrations = {
1: {'up': from1To2},
2: {'down': from2To1, 'up': from2To3},
3: {'down': from3To2, 'up': from3To4},
4: {'down': from4To3},
}
但每次我創建一個新的遷移時間,我需要寫兩個遷移腳本(上下),並把它們在遷徙字典。由於遷移函數非常小(通常是兩行),所以我想直接將它們寫入遷移字典中。在Javascript中,這看起來像這樣:
migrations = {
1: {
'up': function(){ addSomeColumn(); recordChange(); },
'down': function(){ dropSomeColumn(); recordChange(); }
},
2: etc
}
因爲遷移函數通常是兩行,所以我不認爲我可以使用lambda函數。有沒有人知道任何其他方式直接在Python的字典中編寫函數?歡迎所有提示!
如果你創建一個lambda列表的字典?像:'migrations = {1:[lambda:add_some_column(),lambda:record_change()]}' –