is it a bug in exec?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Fri Jan 21 03:14:52 EST 2011


On Thu, 20 Jan 2011 20:52:15 -0800, longqian9509 at gmail.com wrote:

> In pyhton 3.1, I found the following code will succeed with argument 1
> to 4 and fail with argument 5 to 9. It is really strange to me. I
> suspect it may be a buy in exec() function. Does anyone have some idea
> about it? Thanks.

What makes you think it's a bug? Is there anything in the documentation 
of exec that suggests to you that some other behaviour should occur? What 
version of Python are you using?

Without knowing what behaviour you expect and what behaviour you see, how 
are we supposed to know if you've found a bug or not?

I suggest you fire up the interactive interpreter and try this:

t1 = """
class foo:
    def fun():
        print('foo')

def main():
    global foo
    foo.fun()

main()
"""

dg = {}
dl = {}

exec(t1, dg, dl)

then inspect the values of dg and dl and see if it helps. If not, write 
back with what you expect to happen, and what you see instead.


-- 
Steven



More information about the Python-list mailing list