Ziv
Ziv

Reputation: 31

How do I assign functions in a dictionary?

I'm having a problem with a simple program I wrote, I want to perform a certain function according to the users input. I've already used a dictionary as a replacement for a switch to do assignment but when I try to assign functions to the dictionary it doesn't execute them... The code:

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

what did I do wrong? It looks the same as all the examples I've seen....

Upvotes: 3

Views: 305

Answers (1)

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

Reputation: 799470

You forgot to call it.

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

or

PrintTables[ans.lower()]()

Upvotes: 9

Related Questions