Jupyter Notebooks中使用for循环遍历range(3)报TypeError错误求助
解决TypeError: 'numpy.int32' object is not callable问题
问题原因
你大概率是在Jupyter Notebook的某个单元格里,不小心把内置函数range覆盖成了numpy的int32类型变量。比如之前执行过类似这样的代码:
import numpy as np range = np.int32(3) # 这里把range变成了numpy整数对象
之后再调用range(3)时,就会试图调用这个numpy整数,自然抛出"not callable"的错误。其他IDE正常是因为没有在环境中覆盖过range这个名字。
修复步骤
- 验证覆盖情况:在新单元格里执行
type(range),如果输出是<class 'numpy.int32'>,就确认是这个问题。 - 恢复内置range:执行
del range,删除被覆盖的变量,此时range会恢复为Python内置的函数。 - 避免重复踩坑:以后不要用Python内置函数名(比如
range、list、dict等)作为自定义变量名,尤其是在使用numpy、pandas这类库时。
示例演示
错误代码场景:
import numpy as np range = np.int32(5) # 错误地覆盖了range for i in range(3): # 这里会报错TypeError print(i)
修复后:
del range # 恢复内置range for i in range(3): print(i)
执行后会正常输出0、1、2。
内容的提问来源于stack exchange,提问作者Tman
相关产品推荐
相关产品推荐

