检查变量是否是几种类型? (str或list)

时间:2015-08-10 23:02:28

标签: python if-statement types boolean

我知道如果我想检查一下变量x是否是我将要做的str

if type(x) is str:

但是如何检查x是字符串还是列表?所以我可以这样做,而无需添加另一个if分支

if type(x) is (str, list):
     pass
else:
     raise SomeError

3 个答案:

答案 0 :(得分:5)

type(x) in (str, list)

isinstance(x, (str, list))

两者在语义上不相同。请阅读文档中的isinstance()功能。

答案 1 :(得分:0)

if isinstance(x, list) or isinstance(x, list):

或许多不同类型的

if any(isinstance(x, i) for i in [list, tuple, string]):

或者,如果你想看看它是否是任何类型的可迭代

if hasattr(x, '__iter__'):

答案 2 :(得分:0)

使用以下类似的in关键字:

if type(x) in (str, list):

或使用isinstance内置函数:

if isinstance(x, (str, list)):