Python 是否有等效于“开关"的功能?

2022-01-19 00:00:00 python syntax switch-statement

问题描述

我正在尝试检查 8 位二进制字符串中的每个索引.如果是 '0' 则为 'OFF' 否则为 'ON'.

I am trying to check each index in an 8 digit binary string. If it is '0' then it is 'OFF' otherwise it is 'ON'.

有没有更简洁的方式来编写这个带有类似开关功能的代码?

Is there a more concise way to write this code with a switch-like feature?


解决方案

不,它没有.就语言本身而言,Python 的核心原则之一是只有一种方法来做某事.该开关是多余的:

No, it doesn't. When it comes to the language itself, one of the core Python principles is to only have one way to do something. The switch is redundant to:

if x == 1:
    pass
elif x == 5:
    pass
elif x == 10:
    pass

(当然没有失败).

switch 最初是作为 C 的编译器优化引入的.现代编译器不再需要这些提示来优化这种逻辑语句.

The switch was originally introduced as a compiler optimization for C. Modern compilers no longer need these hints to optimize this sort of logic statement.

相关文章