gpt4 book ai didi

Python:向方法调用添加可选参数的更优雅方式

转载 作者:行者123 更新时间:2023-11-28 20:36:49 25 4
gpt4 key购买 nike

这可能看起来微不足道,但这是我经常遇到的情况,我想找到一种更优雅的方式来编写这段代码。该方法虽然与问题不太相关,但采用文本值和可选的 is_checked 值来创建单选按钮(使用 dominate)。在这种情况下,我不能将“选中”设置为无或假 - 它必须存在或不存在。不过,我似乎不必将“输入”行写两次,只是为了有选择地添加一个参数。

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)

问题:如何在不牺牲可读性的情况下用尽可能少的行来处理这个代码案例?

最佳答案

您的代码看起来不错,除了 a 的命名明显不同,它可能是 input_opts 或类似的东西。

另一种使它更清晰的可能性是对常见内容使用直接关键字参数,并使用 ** 注入(inject)可选参数。当只有一个是可选的时,这可以很短,例如:

checked_arg = {'checked': 'checked'} if is_checked else {}
with label(text, cls="radio-inline") as lbl:
input(text, type="radio", name="optradio", **checked_arg)

关于Python:向方法调用添加可选参数的更优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44276742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com