Python —仅在变量存在时传递参数

我有以下变量,用户可以选择通过表单提交这些变量(不是必需的,但可以这样做以过滤搜索)。


color = request.GET.get ('color')

size = request.GET.get ('size')

现在,我想将这些变量传递给函数,但前提是它们存在。如果它们不存在,我只想运行不带参数的函数。


没有参数的函数是:


apicall = search ()

只有颜色


apicall = search (color)

并带有颜色和尺寸


apicall = search (color, size)

如果定义了参数,我想将其传递给函数,但是如果没有定义,我就不想将其传递给函数。


最有效的方法是什么?python有内置方法吗?


慕沐林林
浏览 207回答 3
3回答

小唯快跑啊

在python 3中,您可以将它们打包在一个列表中,对其进行过滤,然后使用*-operator将该列表解压缩为以下参数search:color = request.GET.get ('color')size = request.GET.get ('size')args = [ arg for arg in [color, size] if arg ]search(*args)但是请注意,如果color是虚假且size是真实的,则您将search使用1个参数作为的值进行调用size,这可能是错误的,但是在这种情况下,原始问题并未提及所需的行为。(因为我一直在寻找比我的解决方案更好的解决方案,但发现了这个问题)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python