仅在参数不为null时,如何在python中包含参数?如果我将有效颜色传递给方法doSomething,则以下代码可以正常工作。现在color有时为null(就像java中的null,我猜它在Python中为None或nil),而在printColor抛出异常时。我如何避免这种情况?
Invalid type for parameter packageNamespace, value: None
response = client.printColor(
color = color # Only include this param is not None/Null
)
response = client.printColor() # this works
答案 0 :(得分:1)
您可以从字典中过滤掉None
个
kwargs = {
'color': color,
⋮
}
response = client.printColor(**{k: v for k, v in kwargs.items() if v is not None})
或者做与函数相同的事情:
def none_to_default(**kwargs):
return {k: v for k, v in kwargs.items() if v is not None}
client.printColor(**none_to_default(
color=color,
⋮
))
但是,这可能不是解决该问题的最佳方法。如果您可以显示真实的功能[文档],那将是理想的选择。