Isa*_*old 4 python if-statement ternary-operator
注意:这个问题确实已经在许多其他语言中得到了解答。但是,我找不到 Python 的答案,所以不要标记为重复。
Python 中的 if-else 语句和三元运算符在性能上有区别吗?
我怀疑是否存在性能差异。它们编译为等效的字节码序列:
>>> def f():
... return a if b else c
...
>>> dis.dis(f)
2 0 LOAD_GLOBAL 0 (b)
2 POP_JUMP_IF_FALSE 8
4 LOAD_GLOBAL 1 (a)
6 RETURN_VALUE
>> 8 LOAD_GLOBAL 2 (c)
10 RETURN_VALUE
>>> def g():
... if b:
... return a
... else:
... return c
...
>>> dis.dis(g)
2 0 LOAD_GLOBAL 0 (b)
2 POP_JUMP_IF_FALSE 8
3 4 LOAD_GLOBAL 1 (a)
6 RETURN_VALUE
5 >> 8 LOAD_GLOBAL 2 (c)
10 RETURN_VALUE
12 LOAD_CONST 0 (None)
14 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)
与大多数性能问题一样,答案是测量。