TypeError: 'list' object is not callable
时间:2020-02-23 14:43:46 来源:igfitidea点击:
在本教程中,我们将看到如何解析TypeError:"列表"对象在Python中不可调用。
让我们先明白为什么我们收到这个错误。
在Python,一个 built-in name
是Python解释器分配预定义值的名称。
该值可以是对象,函数或者类。
无论范围,所有这些内置名称都将提供。
请注意,Python不会阻止我们重新分配这些内置名称。
内置名称不保留,我们也可以将它们中的程序用作变量名称。
例如:SET = {}打印("带有变量名的空的DICT:",设置)
输出:带有变量名的空的dict:{}
正如我们所看到的,我们能够创建一个变量名称 set
并将空字典分配给它。
所以这是一个非常常见的错误,你应该避免重写(overwriting)任何内置的名称,如列表,设置或者dict等。
Pep8提供有关命名变量的建议。
让我们在举例的帮助下看到这个:
list = [1,2,2,3,4,2,1,1,4] print(list) set1={ 1,2,2,2,3,3,4,2,1,2,5,3} #converting a set into list using list function print(list(set1))
输出:
Traceback (most recent call last): File “main.py", line 7, in print(list(set1)) TypeError: 'list' object is not callable
正如我们所看到的,我们创建了一个变量名称 list
并分配给它。
这个 list
变量具有重写(overwriting)预定义的列表内置名称,因此当我们使用列表函数来转换设置为列表时,它会提高错误。
解决方案1
要解决问题,让我们将列表变量重命名为list1
list1 = [1,2,2,3,4,2,1,1,4] print(list1) set1={ 1,2,2,2,3,3,4,2,1,2,5,3} #converting a set into list using list function print(list(set1))
输出:
[1,2,2,3,4,2,1,1,4] [1,2,3,4,5]
正如我们所看到的,这解决了这个问题。
解决方案2
如果我们使用的是任何交互式Python会话,请使用此。
del list
如果上述解决方案仍然没有为我们工作,则可能还有一个原因。
解决方案3.
如果我们尝试访问()而不是[]访问列表索引,那么我们也可能获得此问题。
list1 = ['Netherlands','China','Bhutan','Nepal'] print(list1(2))
输出:
回溯(最近调用最后):文件"main.py",第2行,在打印中(list1(2))typearror:'list'对象不是可调用的
将列表(2)更改为列表[2],它将正常工作。
list1 = ['Netherlands','China','Bhutan','Nepal'] print(list1(2))