【发布时间】:2020-11-10 19:10:11
【问题描述】:
为什么列表对象在函数内部不可调用??
代码:
def unique_list(list1):
sets=set(list1)
u_list=(list(sets))
print("old list",list1)
print('unique list',u_list)
list1=[1,1,2,3,4,4,5]
unique_list(list1)
当我这样做时.. 我得到了确切的输出 [1,2,3,4,5]... 但是
如果我使用 list 代替 list1 或任何其他名称,如以下代码:
def unique_list(list):
sets=set(list)
u_list=(list(sets))
print("old list",list)``
print('unique list',u_list)
list=[1,1,2,3,4,4,5]
unique_list(list)
python 抛出错误:
TypeError: 'list' object is not callable
是不是因为这个原因,严格的关键字不能用作变量名??还是其他原因??
【问题讨论】:
-
不要使用
list作为名称,这样您将覆盖您尝试在函数内部使用的内置函数list()。同样适用于所有内置函数、标准库中的模块等。 -
不要使用保留关键字,除了
list会起作用 -
当您调用
u_list=(list(sets))时,您如何期望Python 知道,在this 行(但不是其他行)上,list是内置的-in Python 函数而不是同名的函数参数?答案是:不能。
标签: python list object variables keyword