On 2017-05-29 02:03, Peng Yu wrote:
Hi,
I got the following error when I try to eval the following code with
def. Does anybody know what is the correct way to evaluation python
code that contains `def`? Thanks.
$ cat ./main.py
#!/usr/bin/env python
# vim: set noexpandtab tabstop=2 shiftwidth=2 softtabstop=-1 fileencoding=utf-8:
import dis
s = """
def f(x):
return x is not None
"""
print(s)
eval(s)
$ ./main.py
def f(x):
return x is not None
Traceback (most recent call last):
File "./main.py", line 10, in <module>
eval(s)
File "<string>", line 2
def f(x):
^
SyntaxError: invalid syntax
'eval' expects an expression, e.g. "1 + 2", not statements.
What you should be using instead is 'exec'.
--
https://mail.python.org/mailman/listinfo/python-list