【发布时间】:2021-08-05 10:28:55
【问题描述】:
我正在做一些基本的数据验证,我很困惑。我有以下功能:
def is_int_gt2(num):
if num <= 2 or type(num) != int:
return False
else:
return True
当我打电话给is_int_gt2(-1) 时,我得到False。当我打电话给is_int_gt2(5) 时,我得到True。到目前为止,一切都很好。但是如果我打电话给is_int_gt2('a'),我会得到TypeError: '<=' not supported between instances of 'str' and 'int'
然而让我感到困惑的是,当我在or 语句中切换条件的顺序时,函数却完美运行!:
def is_int_gt2(num):
if type(num) != int or num <= 2:
return False
else:
return True
所以现在我有一个工作功能,但我不知道为什么。 为什么切换条件的顺序会修复功能?谢谢。
【问题讨论】:
标签: python validation types logic typeerror