Python:如果不是或语句与嵌套的if语句

时间:2018-11-10 03:15:03

标签: python if-statement nested

如果没有陈述或陈述,我很难缠着脑袋。多亏了stackoverflow,我知道or语句之前的表达式仅在第一个if语句为False时才会执行,但是当遇到这种可能的用例时,我的所有手指似乎都想键入,而是嵌套的如果声明。

例如,以下类对于x都是相同的输出。

def if_not_or(self, x):
    if not isinstance(x, int) or x % 2 == 0:
        return False
    return True

def nested_if(self, x):
    if isinstance(x, int):
        if x % 2 == 1:
            return True
    return False

尽管第一种方法显然显得更优雅,但与梯形方法相比,它是否具有任何特殊优势?我担心如果一个潜在的用例出现在我的一个项目中,我只会选择嵌套的if方法,因为这样对于我来说,包住初学者到中级编程的思想就更容易了。非常感谢您对本主题的任何启发。

1 个答案:

答案 0 :(得分:1)

有第三种方法可以解决您的问题,

def direct_return(self, x):
    # return True if x is an odd number, False otherwise
    return isinstance(x, int) and x % 2 == 1

使用这些方法中的任何一种,您都会看到性能差异。但是正如评论中建议的那样,可读性很重要。