【发布时间】:2012-12-15 20:14:18
【问题描述】:
我非常熟悉 Python 的三元运算符方法:
value = foo if something else bar
我的问题很简单:如果没有事先分配,是否可以从返回操作数之一(... if 或 else ...)引用在 (if ...) 中评估的术语?
这里的动机是有时我在if ... 中使用表达式,这正是我希望在三元运算中得到的结果;虽然发生这种情况,对于小的表达式,重复它没有问题,但是对于更长的表达式,它会变得有些讨厌。以此为例:
value = info.findNext("b") if info.findNext("b") else "Oompa Loompa"
【问题讨论】:
-
好吧,Oompa Loompa 很有趣!
-
@AspiringAqib 我们没有任务,但我们仍然可以享受一些oompa loompas (:
-
嗯,你有解决办法吧?
-
@AspiringAqib 是的,我想这已经足够了,甚至可能是最好的解决方案(:最好继续KISS'in things(:
-
为什么
findNext不采用可选的默认值,例如get以及以它为原型的数百种其他方法?那么你根本不需要这个。
标签: python variable-assignment ternary-operator user-friendly