可以(尽管通常不是一个好主意)创建一个将其成员定义存储在globals()
或另一个字典中的类:
oddclass = type("oddclass", (object,), globals())
有没有办法对函数做同样的事情,以便它的所有局部变量都存储在全局(或模块)命名空间中,而不是它自己的?
通过声明变量,我可以一次获得一个变量的相同效果global
:
def myfunction():
global x
x = 10
我正在寻找的是一种对所有内部变量(也适用于那些尚未在顶部声明的变量)实现相同效果的通用myfunction
方法,理想情况下是某种可以轻松添加然后删除的单线不再需要。
PS。我问这个问题是因为我很好奇 python 管理函数命名空间的方式。我的动机是在某些情况下将其用作临时调试帮助(具有大量本地数据的函数神秘地失败),但不要介意:我可以global
像上面那样使用。这个问题是关于python函数内部的。