> Can someone help me understand why Example #1 & Example #2 will run > the functions, > while Example #3 DOES NOT? > Thanks for your time! > R.D. > > def One(): > print "running fuction 1" > def Two(): > print "running fuction 2" > def Three(): > print "running fuction 3" > > > # Example #1 > fList = ["Two()","Three()"] > for func in fList: > exec func > > # Example #2 > Two() > Three() > > # Example #3 > fList = ["Two()","Three()"] > for func in fList: > func
In example 3, func is a string literal not a function object. Example 1 works because the exec statement parses and then evaluates the func string resulting in the two function calls you see. Try this instead... fList = [One, Two, Three] for func in fList: func() Cheers, Drea -- http://mail.python.org/mailman/listinfo/python-list