DataSmash wrote:
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

In this case, func is set to the strings 'Two()' and 'Three()', then the <exec func> line tells Python to evaluate the strings and execute them. While this style can be useful, it is also *much* slower than example 2; if all you want is to cycle through the functions, a better way is:

--> fList = [Two, Three]
--> for func in fList:
-->     func()


# Example #2
Two()
Three()

The functions Two and Three are called directly


# Example #2 <-- should be 3  :)
fList = ["Two()","Three()"]
for func in fList:
    func

This is not calling func (no () at the end), and in fact doesn't do anything if called as a script besides evaluate func -- it's a string, but not being assigned anywhere, so unless you are running from the interactive prompt where it will be echoed to screen, nothing happens.

~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to