Python:如果有多个谬误

时间:2014-03-29 20:41:03

标签: python

在处理多个条件时,我目前使用以下语法:

if hasattr(myClass,methodA)==False or hasattr(myClass,methodB)==False or hasattr(myClass,methodC)==False: return

我想知道是否有更短的方法来做同样的事情。我特别不喜欢的是我必须在重复中使用“== False”三次。如果使用它,它会是正确的吗?

if not hasattr(myClass,methodA) or not hasattr(myClass,methodB) or not hasattr(myClass,methodC): return

2 个答案:

答案 0 :(得分:4)

您可以执行if not all(hasattr(myClass,meth) for meth in ('methodA', 'methodB', 'methodC'))

答案 1 :(得分:0)

功能:

if any(map(lambda method: not hasattr(myClass, method), ['methodA', 'methodB', 'methodC'])):