相信大家在使用Python的过程中都遇到过这个错误。这个错误网上有很多文章都说了如何解决这个问题。基本的说法是:
str(value)
是一个内建的系统函数,用于将一个数值型转换为字符串- 用户仍然可以使用 str 进行变量定义,如 str = ‘hello’
- 在定义了
str
变量后,由于名称相同,所以系统内建的str(value)
函数会被解释成用户自定义的变量str
,从而导致报错:TypeError: ‘str’ object is not callable
根据以上的原因,只要删除原先的 str
变量问题就应该解决。然而事实上,很多时候问题仍存在。一些用户发现,问题程序在控制台可执行,但是在交互窗口却仍然有问题,如此文。
这个问题很多文章都没有提到,经过笔者仔细观察发现,根本原因在于:交互窗口会记录历史的主变量,所以即使代码修改了,仍然会报错。知道了问题的原因,解决起来也简单,要么将过程变量清空,如在 Spyder 的操作台右键鼠标有清除变量的选项,要么直接重启一下交互环境即可。