如何处理 TypeError: 'list' 对象不可调用的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计487个文字,预计阅读时间需要2分钟。
如果 `list` 变量和 `list` 函数重名,会导致调用时产生歧义。在上述代码中,由于 `tupToList` 被定义为一个函数,当尝试调用 `list(tup_1)` 时,Python 会优先查找 `list` 函数,而不是 `list` 变量,因此会执行 `list` 函数而不是访问 `list` 变量。
结果将是:
Traceback (most recent call last): File , line 1, in TypeError: 'int' object is not iterable
错误提示说明尝试将整数 `1` 作为可迭代对象处理,这显然是错误的,因为 `1` 是一个整数,不是一个列表。正确的方法是使用正确的变量名来调用 `list` 函数。例如:
pythonlist_=['泡菜', '汤圆', '鱼丸', '饺子']tup_1=(1, 2, 3, 4, 5)tupToList=list(tup_1)print(tupToList)
如果list变量和list函数重名,会有什么后果呢?我们可以参考如下代码:
tup_1 = (1, 2, 3, 4, 5)
tupToList = list(tup_1)
print(tupToList)
代码运行后出错了,出错原因是TypeError: 'list' object is not callable
Traceback (most recent call last):File "D:/python_workshop/python6/lesson3_list.py", line 6, in <module>
tupToList = list(tup_1)
TypeError: 'list' object is not callable
callable()是python的内置函数,用来检查对象是否可被调用,可被调用指的是对象能否使用()括号的方法调用
在如上代码中,由于变量list和函数list重名了,所以函数在使用list函数时,发现list是一个定义好的列表,而列表是不能被调用的,因此抛出一个类型错误
解决办法:我们只需修改变量名list就可以了:
list_1 = ['泡芙', '汤圆', '鱼儿', '骆驼']tup_1 = (1, 2, 3, 4, 5)
tupToList = list(tup_1)
print(tupToList)
运行后和结果是正常的:
[1, 2, 3, 4, 5]因此,在命名变量时要注意,应避免和python的函数名、关键字冲突。
本文共计487个文字,预计阅读时间需要2分钟。
如果 `list` 变量和 `list` 函数重名,会导致调用时产生歧义。在上述代码中,由于 `tupToList` 被定义为一个函数,当尝试调用 `list(tup_1)` 时,Python 会优先查找 `list` 函数,而不是 `list` 变量,因此会执行 `list` 函数而不是访问 `list` 变量。
结果将是:
Traceback (most recent call last): File , line 1, in TypeError: 'int' object is not iterable
错误提示说明尝试将整数 `1` 作为可迭代对象处理,这显然是错误的,因为 `1` 是一个整数,不是一个列表。正确的方法是使用正确的变量名来调用 `list` 函数。例如:
pythonlist_=['泡菜', '汤圆', '鱼丸', '饺子']tup_1=(1, 2, 3, 4, 5)tupToList=list(tup_1)print(tupToList)
如果list变量和list函数重名,会有什么后果呢?我们可以参考如下代码:
tup_1 = (1, 2, 3, 4, 5)
tupToList = list(tup_1)
print(tupToList)
代码运行后出错了,出错原因是TypeError: 'list' object is not callable
Traceback (most recent call last):File "D:/python_workshop/python6/lesson3_list.py", line 6, in <module>
tupToList = list(tup_1)
TypeError: 'list' object is not callable
callable()是python的内置函数,用来检查对象是否可被调用,可被调用指的是对象能否使用()括号的方法调用
在如上代码中,由于变量list和函数list重名了,所以函数在使用list函数时,发现list是一个定义好的列表,而列表是不能被调用的,因此抛出一个类型错误
解决办法:我们只需修改变量名list就可以了:
list_1 = ['泡芙', '汤圆', '鱼儿', '骆驼']tup_1 = (1, 2, 3, 4, 5)
tupToList = list(tup_1)
print(tupToList)
运行后和结果是正常的:
[1, 2, 3, 4, 5]因此,在命名变量时要注意,应避免和python的函数名、关键字冲突。

