this is my code :
a = \
'''def fun():\n
print 'bbb'
'''
eval(a)
fun()
but it shows error :
Traceback (most recent call last):
File "c.py", line 8, in <module>
eval(a)
File "<string>", line 1
def fun():
^
SyntaxError: invalid syntax
so what can i do ,
thanks
eval()
with a string argument is only for expressions. If you want to execute statements, use exec
:
exec """def fun():
print 'bbb'
"""
But before you do that, think about whether you really need dynamic code or not. By far most things can be done without.
If your logic is very simple (i.e., one line), you could eval a lambda
expression:
a = eval("lambda x: print('hello {0}'.format(x))")
a("world") # prints "hello world"
As others have mentioned, it is probably best to avoid eval
if you can.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With