gpt4 book ai didi

Python 在运行时从函数中提取主体

转载 作者:太空狗 更新时间:2023-10-30 02:47:05 24 4
gpt4 key购买 nike

给定一个 Python 函数定义如下:

a = 3
b = 4
c = 5
def add():
d = a+b+c

是否有可能得到一个代码对象或类似的东西给我:

a = 3
b = 4
c = 5
d = a+b+c

最佳答案

函数对象有一个与之关联的代码对象;你可以exec那个代码对象:

>>> a = 3
>>> b = 4
>>> c = 5
>>> def add():
... d = a+b+c
...
>>> exec add.func_code

这将不会但是在本地命名空间中设置d,因为它被编译为仅创建一个本地名称,使用STORE_FAST 操作码。您必须转换此字节码以改为使用STORE_DEREF 操作码,这需要您学习 AST 转换。

如果您确实想走这条路,请阅读Exploring Dynamic Scoping in Python ,它会教您 Python 作用域和字节码的来龙去脉。

关于Python 在运行时从函数中提取主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17390740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com