Python代码调用sorted触发numpy.ndarray不可调用错误排查
问题排查与解决
错误原因
这个报错的核心是内置函数sorted被覆盖成了numpy数组。Jupyter Notebook的内核是持续运行的,之前的单元格代码大概率不小心把sorted当作变量名使用(比如执行过类似sorted = np.array([1,2,3])的代码),导致原本的排序函数被替换成了numpy数组,再次调用sorted()时就会触发“ndarray对象不可调用”的错误。而新Notebook内核是全新的,没有变量残留,所以代码能正常运行。
验证方法
在当前Notebook的一个新单元格里运行以下代码,确认sorted的类型:
print(type(sorted))
如果输出是<class 'numpy.ndarray'>,就证明sorted确实被覆盖了。
解决步骤
- 点击Jupyter菜单栏的
Kernel->Restart,重启内核(会清空所有变量残留)。 - 重新运行你的代码,此时内置的
sorted函数会恢复正常,代码就能顺利执行。
预防建议
避免使用Python内置函数名(比如sorted、list、dict、print等)作为自定义变量名,防止意外覆盖内置功能。
内容的提问来源于stack exchange,提问作者Poo2uhaha
相关产品推荐
相关产品推荐

