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)
我看到他的代码更短,但是有没有像解释得更快的优势?保持我最初拥有的方式是不是很糟糕?在我看来,调试我的代码更容易(我在这个例子中遗漏了一些额外的变量赋值)。
实习期间没有人告诉我应该改变我做事的方式,我只是注意到我的同事喜欢这样做。
在我看来,在两条线中具有相同的条件更糟糕。你的代码更容易理解。最好是:
mode = "BUG" if is_singles_match else "Short"
name1 = get_name(1, mode)
name2 = get_name(2, mode)
Run Code Online (Sandbox Code Playgroud)
注意命名约定。