我是python的新手,遇到了一个问题。
我必须通过一个几乎没有元素(键值)的函数从用户那里获得字典。同时,如果用户不提供字典,则可以提供各个元素作为参数。
如何检查用户是否提供了dictA
,如果没有提供,src
msg
。如果用户不提供任何一个,则将错误返回给调用函数。
让我们说:
def myfunc(dictA, src, msg, e=True)
如果用户未提供dictA,则dictA
是字典,而src
,msg
是争论。
答案 0 :(得分:2)
我不支持他们传入dictA
或其他参数。如果要使用它们,我会让它们以{warms的形式传入dictA
。然后,您可以只检查值是否在那里
新功能原型可能是
def myfunc(src, msg, e=True)
然后用法可能是
myfunc(a_source, a_msg)
或
myfunc(**dictA)
这样,您的函数将自动检查这些值是否至少存在。而且任何其他值检查都只能在一个输入上完成
例如,以下调用将失败(无需执行其他任何操作),因为它仍然缺少msg
的位置参数。
myfunc(**{'src': 'a_source'})
同样,如果您发送的位置参数过多(例如,通过字典传递位置参数和kwarg),也会失败