I am working on a python project where an object will have a script that can be edited by the end user: object.script
If the script is a simple one with no functions, I can easily execute it using:
exec object.script
But if the object script is a bit more complicated, such as the example below, my approach does not work:
def main(): hello1() hello2()
def hello1(): print 'hello1'
def hello2(): print 'hello2'
What do you want to do if you get a script like this? Run main? You could do something like:
py> s = """ ... def main(): ... hello1() ... hello2() ... ... def hello1(): ... print 'hello1' ... ... def hello2(): ... print 'hello2' ... """ py> d = {} py> exec s in d py> d["main"]() hello1 hello2
(Actually, you don't need to exec it in d, that's probably just good practice.)
Steve -- http://mail.python.org/mailman/listinfo/python-list