'NoneType'和'int'错误实例之间不支持'>'的解决方案?



我已经提到了关于这个错误的其他问题,但似乎找不到适合我的案例的解决方案。

a = function(x)   
b = function(y)
if a == None:
print("Invalid a")
if b == None
print("Invalid b")
if a > b:
print("Review")
Error: '>' not supported between instances of 'NoneType' and 'int'

根据我的研究,我理解这个错误意味着什么,但我不确定如何修复它。任何帮助都将不胜感激。

作为if/else语句的替代方案,我建议使用try/except块,如果通常不满足except条件,它应该会稍微高效一些。

此外,根据PEP 8,与None的比较应使用isis not,而不是==!=

a = 21
b = None
try:
if a > b:
print("Review")
except TypeError:
if a is None:
print("Invalid a")
elif b is None:
print("Invalid b")
else:
raise

您可以使用elif:

a = function(x)   
b = function(y)
if a == None:
print("Invalid a")
elif b == None
print("Invalid b")
elif a > b:
print("Review")

否则,ab仍然有可能是None,因为代码中的所有比较都是相互独立的。

最新更新