> This is when I discovered you *can* pass in something using 'compile' > with the kind argument of "exec":: > > >>> x > Traceback (most recent call last): > File "<stdin>", line 1, in ? > NameError: name 'x' is not defined > [16425 refs] > >>> eval(compile("x = 1", "<string>", "exec")) > [16426 refs] > >>> x > 1 > > Is this a bug, or are the docs wrong? I am hoping it is the former > since if it is the latter my thesis just got a big caveat pasted into it > about how 'eval' can cause problems and invalidate the type inferencing > in irreparable ways. You shouldn't do this, and if you do, you will pay for your sin in a special kind of hell set aside for people who take the implementation as the spec. It's hard to detect such undefined usage without making eval() (and possibly everything) slower though. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4