2010-05-08 6 views
3

J'ai un problème avec un programme simple que j'ai écrit, je veux effectuer une certaine fonction en fonction de la saisie des utilisateurs. Je l'ai déjà utilisé un dictionnaire en remplacement d'un interrupteur pour faire cession, mais lorsque je tente d'assigner des fonctions au dictionnaire, il ne les exécute pas ... Le code:Comment affecter des fonctions dans un dictionnaire?

def PrintValuesArea(): 
    ## do this 
def PrintValuesLength(): 
    ## do that 
def PrintValuesTime(): 
    ## do third 

PrintTables={"a":PrintValuesArea,"l":PrintValuesLength,"t":PrintValuesTime} 
PrintTables.get(ans.lower()) ## ans is the user input 

qu'ai-je fait faux? Il ressemble à tous les exemples que j'ai vus ...

Répondre

10

Vous avez oublié de l'appeler.

PrintTables.get(ans.lower())() 

ou

PrintTables[ans.lower()]() 
Questions connexes