You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

代码在Spyder运行正常但在Jupyter Notebook报list不可调用错误

错误原因

该报错并非Jupyter和Spyder的兼容性问题,根因是两类工具的运行上下文机制不同:

  • Jupyter Notebook采用共享内核会话机制,同一个内核启动后,所有代码单元格的运行变量、上下文会全程保留。如果你在当前内核的其他单元格中,曾经将Python内置的sum()函数赋值为列表类型(比如之前写过sum = []这类代码),就会直接覆盖内置的求和函数,后续执行sum(total_price)时,解释器会尝试把你之前定义的sum列表当作函数调用,自然抛出TypeError: 'list' object is not callable错误。
  • Spyder默认每次运行独立脚本时,会启动全新的Python解释器进程,上下文干净无残留的自定义变量覆盖内置函数,所以代码可以正常运行。
修复方案
  • 临时快速修复:重启当前Jupyter的内核,内核重启后会清空所有缓存的自定义变量,内置sum()函数会恢复默认,重新运行代码即可正常执行。
  • 不重启内核的修复:在当前运行的代码单元格顶部,先执行一行del sum,手动删除被覆盖的sum自定义变量,即可恢复内置求和函数功能。
  • 长期规避方案:写代码时不要用Python内置函数/类名(比如sum、list、str、dict、int等)作为自定义变量名,从根源避免覆盖内置功能。
可正常运行的参考代码
# Grocery list and prices
food = ["Tostino's Party Pizza", "Lay's Classic Potato Chips", "Pepsi Soda, 2 Liter", "Tyson Any'tizers Chicken Wings"]
price = [1.50, 3.98, 1.98, 10.42]

#Calculating sum of groceries
total_price = []
for p in price:
    total_price.append(p)
print(total_price)

print(sum(total_price))

内容的提问来源于stack exchange,提问作者redleg_64

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:09:01