gpt4 book ai didi

python - python 函数如何将其所有变量放在全局命名空间中?

转载 作者:太空宇宙 更新时间:2023-11-03 19:11:00 25 4
gpt4 key购买 nike

可以创建一个类,将其成员定义存储在 globals() 或其他字典中:

oddclass = type("oddclass", (object,), globals())

是否有一种方法可以对函数执行相同的操作,以便其所有局部变量都存储在全局(或模块)命名空间中,而不是其自己的命名空间中?

通过声明变量 global,我可以一次获得一个变量的相同效果:

def myfunction():
global x
x = 10

我正在寻找的是一种通用方法,可以为myfunction的所有内部变量实现相同的效果(也适用于那些尚未在顶部声明的变量) ,理想情况下是某种单行,可以轻松添加,然后在不再需要时删除。

PS。我问这个问题是因为我对 python 管理函数 namespace 的方式感到好奇。我的动机是在某些情况下将其用作 临时调试辅助工具(具有大量本地数据的函数会神秘地失败),但没关系:我可以接受使用 global如上所述。这个问题是关于 python 函数内部的。

最佳答案

这有效

>>> def test():
x = 10
y = 'Some string'
for k, v in locals().items():
globals()[k] = v


>>> test()

>>> x
10
>>> y
'Some string'

请记住,这是非常不安全的技术,永远不应该使用

关于python - python 函数如何将其所有变量放在全局命名空间中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12993513/

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