执行Python for循环遇TypeError: 'str' object is not callable错误求助
解决方法
这个错误的核心原因是你当前内核会话中,某个内置函数(大概率是range或print)被意外赋值成了字符串——比如之前不小心执行过range = "xxx"或者print = "d"这类代码,导致原本的函数对象被字符串覆盖,调用时就会触发'str' object is not callable错误。
无需重启内核的修复步骤:
- 先运行以下代码排查哪个对象被覆盖:
如果输出是print(type(range)) print(type(print))<class 'str'>,说明对应的函数被覆盖了。 - 针对被覆盖的对象,执行
del命令删除这个自定义变量,让Python重新加载内置函数:- 若
range被覆盖:del range - 若
print被覆盖:del print
- 若
- 之后重新运行你的循环代码,就能正常执行了。
预防建议
- 永远不要用Python内置函数名(如
range、print、list)或关键字作为变量名; - 不确定某个名称是否为内置对象时,可运行
dir(__builtins__)查看所有内置成员。
内容的提问来源于stack exchange,提问作者Jaideep Banerjee
相关产品推荐
相关产品推荐

