簡體   English   中英

如何取消字典初始化? python3.3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM