[英]How to cancel the dictionary to initialize ? python3.3
通過首先解釋代碼來解釋我的問題會更容易。
def initialize_function(num,instruction,emplacement1,emplacement2,current_pipeline):
function_mapping={
"LOAD" : LOAD(num,emplacement1,emplacement2,current_pipeline),
"STORE" : STORE(num,emplacement1,emplacement2,current_pipeline),
"MOVE" : MOVE_IADD(num,emplacement1,emplacement2,current_pipeline),
"IADD" : MOVE_IADD(num,emplacement1,emplacement2,current_pipeline),
"FADD" : FADD(num,emplacement1,emplacement2,current_pipeline)
}
current_pipeline=function_mapping[instruction]
return(current_pipeline)
initialize_function
函數有一個參數instruction
。 instruction
是一個等同於function_mapping
dictionnary的一個鍵的字符串。 因此,當我執行current_pipeline=function_mapping[instruction]
它應該只執行instruction
的值。 但事實並非如此。 實際上, function_mapping
dictionnary在查找鍵instruction
之前被初始化,因此它一個接一個地執行所有函數LOAD,STORE,MOVE,IADD,FADD。
我能做什么 ?
先感謝您 :)
MFF
由於所有函數的參數都相同,因此它應該起作用:
def initialize_function(num,instruction,emplacement1,emplacement2,current_pipeline):
function_mapping={
"LOAD" : LOAD,
"STORE" : STORE,
"MOVE" : MOVE_IADD,
"IADD" : MOVE_IADD,
"FADD" : FADD
}
current_pipeline=function_mapping[instruction](num,emplacement1,emplacement2,current_pipeline)
return(current_pipeline)
說明:由於實際調用函數,因此將在運行時計算字典值。 你想要傳遞對它們的引用,因為函數是python中的第一類對象,你可以做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.