有没有更紧凑的方式来编写这些相同的条件?

时间:2019-06-25 15:27:15

标签: python python-3.x if-statement conditional-statements

我要检查四个变量的类型是否是特定类型,我必须这样做:

if (type(a) is not SomeType or
    type(b) is not SomeType or
    type(c) is not SomeType or
    type(d) is not SomeType):
    raise Exception("Not the correct types")

这感觉是重复的。似乎有更好,更少冗余的方法可以做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以使用any检查是否有任何物品属于SomeType类型。

您还应该考虑使用isinstance来检查类型。

if any(not isinstance(item, SomeType) for item in [a,b,c,d]):
    raise Exception("Not the correct types")

您也可以使用all

编写此代码
if not all(isinstance(item, SomeType) for item in [a,b,c,d]):
    raise Exception("Not the correct types")