* William wrote:
Hello all.
Thanks for the tips and solutions posted to the list so far. This is a
general python question, not windows specific. It is my turn to ask.
(Perhaps the notion below will suggest some development to one of you.
Who knows?)
I want to execute a statement indirectly in Python. Take the simple case
below. The chevrons ">> " indicate the result of the statement
b = 2
a = b + 6
eval('a = b + 6', globals(), locals() )
>> File "not_much_at_all.py", line 21, in ?
>> rslt = eval('a = b + 6', globals(), locals() )
>> File "<string>", line 1
>> a = b + 6
>> ^
>> SyntaxError: invalid syntax
While I appreciate that "eval()" is not the way to do this, it is also
true that "eval()" accurately signals my intention in this sample.
HOW -- or, is it possible -- to execute the an assignment statement from
a string?
I have used compile() and considered using a 'block'. Compile doesn't
help. And I can't find an equivalent for 'eval( <block> )' ...
Who has the answer?
Well, you do! You ask how to exec a statement, and the answer is ... use
an "exec" statement!
>>> exec "a = 25/3"
>>> a
8
>>>
regards
Steve
--
Steve Holden +1 703 861 4237 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
Python Web Programming http://pydish.holdenweb.com/
_______________________________________________
Python-win32 mailing list
Python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32