如何清除与函数同名的Python变量并使函数再次工作

时间:2015-09-03 13:26:10

标签: python

我有一个运行大约一个小时的脚本。我在python shell中运行它,然后在shell中使用生成的变量。问题是,我不小心创建了一个与函数同名的变量:

calcError = calcError(someVars)

所以当我尝试再次调用该函数时,

TypeError: 'list' object is not callable

我知道通常我可以通过将变量设置为None来清除变量。但这并没有恢复功能:

calcError = None
someOtherVar = calcError(someVars)
TypeError: 'NoneType' object is not callable

如何在不必再次运行脚本的情况下恢复该功能?

1 个答案:

答案 0 :(得分:1)

如果您在交互式会话中创建了该功能,那么您将全局名称替换为另一个对象,并且无法获取旧对象。重新运行之前在shell中执行的def calcError(...):行。

如果从模块导入该功能,只需重新导入该模块以重新绑定全局名称:

from modulename import calcError

那是因为函数对象仍在该模块的命名空间中被引用;导入只是创建对同一对象的另一个引用。