检查变量是否是一对类型? (字符串或列表)
Check if variable is either a couple types? (str or list)
我知道如果我想检查变量 x 是否是一个 str 我会做
if type(x) is str:
但是我如何检查 x 是字符串还是列表?所以我可以在不添加另一个 if branch
的情况下做到这一点
if type(x) is (str, list):
pass
else:
raise SomeError
type(x) in (str, list)
或
isinstance(x, (str, list))
两者在语义上并不相同。阅读文档中的 isinstance()
函数。
if isinstance(x, list) or isinstance(x, list):
或针对多个不同类型
if any(isinstance(x, i) for i in [list, tuple, string]):
或者如果您想查看它是否是任何类型的可迭代对象
if hasattr(x, '__iter__'):
使用类似于下面的 in
关键字:
if type(x) in (str, list):
或使用isinstance
内置函数:
if isinstance(x, (str, list)):
我知道如果我想检查变量 x 是否是一个 str 我会做
if type(x) is str:
但是我如何检查 x 是字符串还是列表?所以我可以在不添加另一个 if branch
的情况下做到这一点if type(x) is (str, list):
pass
else:
raise SomeError
type(x) in (str, list)
或
isinstance(x, (str, list))
两者在语义上并不相同。阅读文档中的 isinstance()
函数。
if isinstance(x, list) or isinstance(x, list):
或针对多个不同类型
if any(isinstance(x, i) for i in [list, tuple, string]):
或者如果您想查看它是否是任何类型的可迭代对象
if hasattr(x, '__iter__'):
使用类似于下面的 in
关键字:
if type(x) in (str, list):
或使用isinstance
内置函数:
if isinstance(x, (str, list)):