Python报错”TypeError: ‘list’ object is not callable “怎么处理?

  • Post category:Python

Python报错”TypeError: ‘list’ object is not callable”通常出现在程序中调用了一个列表对象(List)作为函数来执行时。这种错误提示意味着Python解释器认为列表不是一个可以被调用的函数,而是一个对象类型,如下例:

my_list = [1, 2, 3]
my_list(0)  # 调用列表对象

上述代码中, my_list(0) 被判定为一个函数调用,但是Lits对象并不是一个函数,因此报“TypeError: ‘list’ object is not callable”错误。

常见情形:

  1. 调用list变量,但写成a_list()的形式,比如:
a_list = [1,2,3]
print( a_list(0) )
  1. 在Python文件中引入的模块与已有同名预装模块冲突,在Python2.x中,input()是输入函数,但Python3.x中,input()是字符串函数。

针对上述两种情况,以下是解决办法的攻略:

  1. 检查python代码是否在定义列表的后面用小括号调用了列表对象;

  2. 如果是引入了同名预装的模块,需要更换变量名或使用绝对导入的方式依次引入。

以下为示例代码的正确示范:

# 正确的示范:
my_list = [1, 2, 3]
print(my_list[0])  # 引用列表中的元素

# 解决办法2:使用绝对导入方式,如 import input as i 输入模块为 i。

总结一下,TypeError: ‘list’ object is not callable 的错误提示在运行中影响到程序的执行,需要认真排查问题发生的位置,并结合相关的Python语法规则进行检查修改。