[Tutor] easy way to pupulate a dict with functions
Albert-Jan Roskam
fomcl at yahoo.com
Thu Aug 6 17:25:49 CEST 2009
Hi,
I was playing with the code below, and I was wondering if there was a way to populate the dictionary called 'commands' (in the function 'check_command()').
Suppose I would add another function, which I would also like to store as a value in 'commands', could it simply be programmed, or would every update/addition require the definition of the dictionary to be extended?
It would be most desirable if one could simply add another function without there being the need to touch any of the other code.
Cheers!!
Albert-Jan()
def foo (a):
return "foo" * a
def bletch (q):
for i in range(20):
print i * q
def stilton (n):
print "yes sir, " * n
def romans (z):
print "what have the romans really done for us?\n" * z
def check_command():
commands = {'1': foo, '2': bletch, '3': stilton, '4': romans}
while True:
select = raw_input("choose an option [%s]: " % "|".join(sorted(commands.keys())))
if select in commands.keys():
check_parameter(commands, select)
break
else:
print "illegal option (%s)" % select
def check_parameter(commands, select):
while True:
parameter = raw_input("choose a parameter [integer]: ")
if parameter.isdigit():
commands[select](int(parameter))
break
else:
print "illegal parameter (%s)" % parameter
check_command()
More information about the Tutor
mailing list