有没有更干净或更高效的Python任务?

Mik*_*den 0 python variable-assignment

这是我现在的代码:

lang = window.get_active_document().get_language()
if lang != None:
    lang = lang.get_name()
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?我是Pythonic的新手,并且想知道是否有更多的Python方式可以说"如果x为真,则某些东西等于此,否则它等于那个."

谢谢.

Din*_*ngo 7

你可以做lang = lang and lang.get_name()而不是'if'语句.

如果lang为None,它将保持None.如果不是,则将其设置为lang.get_name().

不过,我不确定这种语法是否会让事情变得更加清晰.

PS而不是lang != None你应该使用not lang is None.

  • @Mike Crittenden,在Python中,`和`总是返回其中一个参数.如果第一个参数为真,它知道结果完全取决于第二个参数的真或假,所以它只返回第二个参数.如果第一个参数为false,则它会短路并返回第一个参数."或"也会发生类似的事情.正如你所指出的那样,并不是那么明显或清楚.在替换`is not None`的情况下,它也可能是错误的.就个人而言,我从不以这种方式使用`和`. (2认同)