如果没有陈述或陈述,我很难缠着脑袋。多亏了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方法,因为这样对于我来说,包住初学者到中级编程的思想就更容易了。非常感谢您对本主题的任何启发。
答案 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
使用这些方法中的任何一种,您都会看到性能差异。但是正如评论中建议的那样,可读性很重要。