yum 源中无用的 if 语句

Useless if statement in yum source

我很好奇 yum 中的一些东西是如何工作的,所以我在查看它的一些分数代码时,我在 cli.py.[=16] 的 erasePkgs 函数中找到了这一行=]

if False: pass
elif basecmd in ('erase-n', 'remove-n'):
   rms = self.remove(name=arg)
.
.
.

if False: pass 什么都不对?它永远不会进入那个分支,它总是跳到下一个分支,不是吗?

这里是 link 的源代码:https://github.com/rpm-software-management/yum/blob/master/cli.py。它在第 1268 行。

这似乎是开发人员对通用 switch 语句的习惯用法。

        if False: pass
        elif basecmd in ('erase-n', 'remove-n'):
            rms = self.remove(name=arg)
        elif basecmd in ('erase-na', 'remove-na'):
            ...
        elif basecmd in ('erase-nevra', 'remove-nevra'):
            ...
        else:
            ...

可读性更强
        if basecmd in ('erase-n', 'remove-n'):
            rms = self.remove(name=arg)
        elif basecmd in ('erase-na', 'remove-na'):
            ...
        elif basecmd in ('erase-nevra', 'remove-nevra'):
            ...
        else:
            ...