这是可能的(尽管通常不是一个好主意)来创建存储在globals()
其成员定义一个类或其他词典:python函数如何将所有变量放在全局名称空间中?
oddclass = type("oddclass", (object,), globals())
有没有办法做一个功能相同的,所以所有的它的局部变量存储在全局(或模块)名称空间中,而不是它自己的?
我一次可以得到相同的效果一个变量,通过声明变量global
:
def myfunction():
global x
x = 10
什么我要找的是实现所有的内部变量相同的效果一般方式myfunction
(也适用于尚未在顶部声明的人),理想情况下某种单线程可轻松添加,然后在不再需要时删除。
PS。我问这个问题,因为我很好奇python管理函数名称空间的方式。我的动机是在某些情况下(如许多本地数据神秘失败的函数),将它用作临时调试帮助,但是不要介意:我可以像上面一样使用global
。这个问题是关于python函数内部的。
为什么你希望你的函数在被调试时以完全不同的方式运行?你冒险从一个函数的'x'干扰另一个函数。 – r3m0t
为什么不使用调试器作为调试帮助? – Keith
如果某个函数在管理复杂数据结构过程中引发异常,则与IDLE捆绑在一起的调试器无法完成检查剩余部分的任务。 (的确,一个体面的调试器会使这个不确定)。但是可以从解释器提示中检查全局变量。我只为这个即将崩溃的功能(手动)执行此操作,所以没有风险。 – alexis