【发布时间】:2017-05-31 05:55:20
【问题描述】:
这可能看起来微不足道,但这是我经常遇到的一种情况,我希望找到一种更优雅的方式来编写此代码。该方法虽然与问题不太相关,但需要一个文本值和一个可选的 is_checked 值来创建一个单选按钮(使用dominant)。在这种情况下,我不能将 'checked' 设置为 None 或 false - 它必须存在或不存在。看起来我不应该写两次“输入”行,只是为了可选地添加一个参数。
def _get_radio_button(text: str, is_checked=False):
with label(text, cls="radio-inline") as lbl:
if is_checked:
input(text, type="radio", name="optradio", checked='checked')
else:
input(text, type="radio", name="optradio")
return lbl
这将是我的第二种方法,但它是相同的代码行并且可读性较差 - 尽管可能更干燥一点。
a = dict(type='radio', name='optradio')
if is_checked:
a['checked']='checked'
with label(text, cls="radio-inline") as lbl:
input(text, **a)
问题:如何在不牺牲可读性的情况下以尽可能少的行数处理此代码案例?
【问题讨论】:
-
您的第二个选项非常合理,只需为 kwargs 字典使用一个合理的名称,例如
kwargs而不是a。
标签: python python-3.x optional-parameters keyword-argument