我有一个运行大约一个小时的脚本。我在python shell中运行它,然后在shell中使用生成的变量。问题是,我不小心创建了一个与函数同名的变量:
calcError = calcError(someVars)
所以当我尝试再次调用该函数时,
TypeError: 'list' object is not callable
我知道通常我可以通过将变量设置为None
来清除变量。但这并没有恢复功能:
calcError = None
someOtherVar = calcError(someVars)
TypeError: 'NoneType' object is not callable
如何在不必再次运行脚本的情况下恢复该功能?
答案 0 :(得分:1)
如果您在交互式会话中创建了该功能,那么您将全局名称替换为另一个对象,并且无法获取旧对象。重新运行之前在shell中执行的def calcError(...):
行。
如果从模块导入该功能,只需重新导入该模块以重新绑定全局名称:
from modulename import calcError
那是因为函数对象仍在该模块的命名空间中被引用;导入只是创建对同一对象的另一个引用。