使用Python sorted函数时遇到TypeError问题求助
问题排查:sorted函数调用报错 'NoneType' object is not callable
错误原因
这个错误的核心是你之前的代码把Python内置的sorted函数名覆盖成了None。
最常见的触发场景是你写过类似这样的代码:
sorted = cars.sort()
list.sort()方法是直接修改原列表完成排序,它的返回值是None。当你把这个None赋值给变量sorted,就会覆盖掉原本的内置函数。之后再调用sorted(cars)时,实际是在尝试调用一个None对象,所以会抛出TypeError。
解决方法
- 检查所有代码,找到将
sorted赋值为其他值的语句,要么删除该语句,要么把变量名改成别的(比如sorted_cars)。 - 如果是在交互式环境(如Python Shell、Jupyter Notebook)中,可以通过重新导入内置模块恢复
sorted函数:import builtins sorted = builtins.sorted - 恢复后再运行你的代码:
就能得到预期的临时排序结果:cars = ['bmw', 'audi', 'toyota', 'subaru'] print(sorted(cars))['audi', 'bmw', 'subaru', 'toyota']
内容的提问来源于stack exchange,提问作者ieddy
相关产品推荐
相关产品推荐

