2

“and-or”技巧的目的是什么?

IE

>>> a = ""

>>> b = "second"

>>> 1 and a or b

'second'
4

1 回答 1

7

这只是模仿 C 语言家族中的条件运算符(又名“三元”运算符)的一种方式。过去,没有直接的等价表达。以下表达式有些等价:

# in python
a and b or c
// in C
a ? b : c

不过不要使用它。由于 Python 的语义,如果b是假的,则表达式将计算为c.

从 Python 2.5 ( PEP 308 )开始,他们已经为这个结构提供了正确的语法。

b if a else c
于 2013-10-25T15:29:29.210 回答