在 Python 中不在一行中创建一个简单的 if-else 语句是不好的做法吗?

mas*_*ool 0 python interpreter if-statement

在我的实习中,我注意到我的一位同事通过这样做操纵了我的一个功能:

if isSinglesMatch:
    name1 = GetName(1, "BUG")
    name2 = GetName(2, "BUG")
else:
    name1 = GetName(1, "Short")
    name2 = GetName(2, "Short")
Run Code Online (Sandbox Code Playgroud)

对此:

name1 = GetName(1, "BUG" if isSinglesMatch else "Short")
name2 = GetName(2, "BUG" if isSinglesMatch else "Short")
Run Code Online (Sandbox Code Playgroud)

我看到他的代码更短,但是有没有像解释得更快的优势?保持我最初拥有的方式是不是很糟糕?在我看来,调试我的代码更容易(我在这个例子中遗漏了一些额外的变量赋值)。

实习期间没有人告诉我应该改变我做事的方式,我只是注意到我的同事喜欢这样做。

Dan*_*iel 5

在我看来,在两条线中具有相同的条件更糟糕。你的代码更容易理解。最好是:

mode = "BUG" if is_singles_match else "Short"
name1 = get_name(1, mode)
name2 = get_name(2, mode)
Run Code Online (Sandbox Code Playgroud)

注意命名约定。