检查列表类型的另一种方法

时间:2020-01-12 07:37:56

标签: python

list = [1,2,3]
print(type(list) == list) # Prints False

除了更改列表名称之外,还有其他方法可以检查此列表的类型吗? (因为我已经在代码中多次引用了list变量,很难更改所有变量。)

2 个答案:

答案 0 :(得分:4)

您的代码仅返回False,因为您用列表替换了list的本义。您不应将Python内置函数的名称用作变量名称。

因此,更改列表名称,它将按预期工作。

如果为时已晚,如您在问题编辑中所建议的那样,您仍然可以使用以下方式访问原始的list

list = [1,2,3]
print(type(list) == __builtins__.list) 
# True

或者,更推荐的方法是使用isinstance代替type(...) == ...

print(isinstance(list, __builtins__.list))
# True

答案 1 :(得分:2)

这是因为您要隐藏内置的list

l = [1,2,3]
print(type(l) == list) # True

type(list)给出<class 'list'>,而不是[1,2,3]

您可以使用@ThierryLathuille建议的选项之一,但是最佳实践是重命名list变量,您不应使用内置名称作为变量名称。