我知道如果我想检查一下变量x是否是我将要做的str
if type(x) is str:
但是如何检查x是字符串还是列表?所以我可以这样做,而无需添加另一个if分支
if type(x) is (str, list):
pass
else:
raise SomeError
答案 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)):