【发布时间】:2017-11-15 05:10:45
【问题描述】:
来自 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
在 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
}
处理None 的更“pythonic”方式是什么?
【问题讨论】:
-
这在某种程度上取决于你想用
varB和varC“做什么”…try: ... except TypeError: ...可能是一种pythonic 方法。 -
我只想尽可能少地嵌套代码并使用尽可能少的行。大多数时候,当使用相同的函数来检索变量时,它可以被缩短,但我不知道如何在 Python 中做到这一点(在 if 语句中绑定是不可能的)。至于什么 varB 和 varC,这两个将结合其中的一些属性来制作模拟的 varA,但我留下了实现/变量名称以直接解决问题
-
看看你在做什么,看来这可能是重载
[ ]和in运算符并在你的类中实现__getitem__和__contains__方法的情况。跨度> -
@cdarke:完美!我找到了这个链接来补充你的建议:stackoverflow.com/questions/2217001/…
-
检查一下它可能会给你一个解释。 stackoverflow.com/questions/19473185/what-is-a-none-value
标签: python