How to get the closure environment in Python?
Yuan Cao
yuancao85 at gmail.com
Thu Apr 28 12:46:10 EDT 2016
On Thu, Apr 28, 2016 at 12:23 PM, Jin Li <lijin.abc at gmail.com> wrote:
> Hi all,
>
> I want to get the closure environment in Python. As in the following
> example:
>
> def func1():
> x = 10
> def func2():
> return 0
>
> return func2
>
> f=func1()
> print f()
>
>
> How could I get the variable `x` in the environment of `func2()`? i.e.
> `f()`.
>
> Best regards,
> Jin
> --
> https://mail.python.org/mailman/listinfo/python-list
Hello,
You can sort of look into the underlying code by using __code__, and it's
associated methods.
I was able to get the variable names with:
print(funct1.__code__.co_varnames).
I was sort of able to get to the value 10 with:
print(func1.__code__.co_consts).
This way seems pretty messy. Other people probably have more elegant ways
of doing this.
I hope this helps.
Best Regards,
Yuan
More information about the Python-list
mailing list