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”错误。
常见情形:
- 调用list变量,但写成a_list()的形式,比如:
a_list = [1,2,3]
print( a_list(0) )
- 在Python文件中引入的模块与已有同名预装模块冲突,在Python2.x中,input()是输入函数,但Python3.x中,input()是字符串函数。
针对上述两种情况,以下是解决办法的攻略:
-
检查python代码是否在定义列表的后面用小括号调用了列表对象;
-
如果是引入了同名预装的模块,需要更换变量名或使用绝对导入的方式依次引入。
以下为示例代码的正确示范:
# 正确的示范:
my_list = [1, 2, 3]
print(my_list[0]) # 引用列表中的元素
# 解决办法2:使用绝对导入方式,如 import input as i 输入模块为 i。
总结一下,TypeError: ‘list’ object is not callable 的错误提示在运行中影响到程序的执行,需要认真排查问题发生的位置,并结合相关的Python语法规则进行检查修改。