2015-06-27 73 views
2

有没有写一行Python的语句制作pythonic单行语句,如“如果标志返回True”?

if flag: 
    return True 

注意,这可以从

return flag 

在我来说,语义不同的方式,无预计将另有返回。

我试着用“返回True if flag”,它有我的emacs检测到的语法错误。

+2

我想'如果标志:返回TRUE;是不是你想要的......它看起来非常简洁,清晰。 – utdemir

+0

如果标志是虚假的,预期返回值是多少? 'None'? –

+0

@utdemir我不知道你的作品。是的,这是简洁而简洁的。谢谢。 – zell

回答

8

return True if flag不起作用,因为您需要提供明确的else。您可以使用:

return True if flag else None 

复制原始if语句的行为。

0

如果您在标志为错误值时返回False,则可以使用bool return bool(flag)

或者,也许这取决于你是否恢复有下列情形:

return True if flag else None 

如果要测试的返回值if Falseif True都将评估为False所以,除非你明确地测试为无则return bool(flag)就足够了。

1

你可以使用:

return bool(flag) or None