A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2004-May/044689.html below:

[Python-Dev] Passing compile(...,'exec') code to 'eval'

[Python-Dev] Passing compile(...,'exec') code to 'eval'Guido van Rossum guido at python.org
Wed May 5 19:20:00 EDT 2004
> 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/)


More information about the Python-Dev mailing list

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