来自 Swift,我在使用 .None 类型的 Python 时遇到了一些困难。None如果在数组中找不到我要查找的对象,我有一些函数可能会返回。
然后我必须按如下方式嵌套我的代码:
varA = self.getVariableByName(Variables.varA)
if varA is None:
varB = self.getVariableByName(Variables.varB)
varC = self.getVariableByName(Variables.varC)
if varB is not None and varC is not None:
# Do something with varB and varC
Run Code Online (Sandbox Code Playgroud)
在 Swift 中,我曾经能够在 if 语句中绑定变量
let f = getVariableByName
if f(Variables.varA) == nil, let varB = f(Variables.varB), let varC = f(Variables.varC) {
// Do something with varB and varC
}
Run Code Online (Sandbox Code Playgroud)
什么是更“pythonic”的处理方式None?
您可以使用python 3.8 及更高版本中的海象运算符( :=) 将赋值语句转换为表达式。然后你可以检查赋值结果是否在Noneif语句内,以决定是否继续。
if (var_a := self.get_variable_by_name(Variables.var_a)) is not None:
var_b = self.get_variable_by_name(Variables.var_b)
var_c = self.get_variable_by_name(Variables.var_c)
if var_b is not None and var_c is not None:
# Do stuff...
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用“:=”运算符:
if varB := getVariableByName(Variables.varB):
pass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4184 次 |
| 最近记录: |