如何换行使用 "true_value if condition else false_value" 语法的语句

How to line wrap a statement that uses a "true_value if condition else false_value" syntax

我想根据 PEP 8 将下一行 Python 代码包装到 < 80 个字符。

self.settings["bid"]["soloslim_plays_first"] = "True" if settings_pane.check_soloslim_plays_first.isChecked() else "False"

这一行没有任何括号,所以这是我想出的:

self.settings["deal"]["dealer_can_shuffle"] = "True" \
        if settings_pane.check_dealer_shuffle.isChecked() \
        else "False"

我不太喜欢这个,因为真值和假值不一致。有没有更好的包装方式(例如,没有反斜杠)?我更喜欢冗长的变量对象名称,所以请不要建议将 check_soloslim_plays_first 替换为 cspf ;-)

如果你在if语句的内容两边加上括号,那么你可以这样格式化:

self.settings["bid"]["soloslim_plays_first"] = "True" if (
    settings_pane.check_soloslim_plays_first.isChecked()) else "False"

另一种选择是将整个条件表达式包裹在括号中:

self.settings["bid"]["soloslim_plays_first"] = (
    "True" if settings_pane.check_soloslim_plays_first.isChecked()
    else "False")