重写成语“... if foo is not None else None”

问题描述 投票:0回答:1

有没有办法,例如用布尔逻辑(或,和,...)或其他方式,来替换成语:

... if foo is not None else None

示例:

foo = int(foo) if foo is not None else None

通过一些不那么多余的东西? (没有任何辅助功能)

注意:不是 Convert to int if not None, else keep None 的重复,这个问题没有很好地集中。

python nonetype
1个回答
0
投票
不,没有更短的方法。

使用

is not None

 的表达式对于双重否定看起来很烦人。如果这让您烦恼,您应该将它们重写为 if+else 块。

另一种方法是将

None

 替换为另一个空值。如果您对 
foo
 的类型及其可能值有更多了解,您可以使用这个想法。

x = int(foo) if foo is not None else None x = int(foo or '0') # same as above if foo is a valid str or None
    
© www.soinside.com 2019 - 2024. All rights reserved.