跳到内容

if-else-block-instead-of-dict-lookup (SIM116)

源自 flake8-simplify 代码检查器。

作用

检查三个或更多个具有直接返回的连续 if 语句

为什么这不好?

这些可以通过使用字典来简化

示例

def find_phrase(x):
    if x == 1:
        return "Hello"
    elif x == 2:
        return "Goodbye"
    elif x == 3:
        return "Good morning"
    else:
        return "Goodnight"

建议改为

def find_phrase(x):
    phrases = {1: "Hello", 2: "Goodye", 3: "Good morning"}
    return phrases.get(x, "Goodnight")