Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果不为null,则将参数传递给方法_Python - Fatal编程技术网

Python 如果不为null,则将参数传递给方法

Python 如果不为null,则将参数传递给方法,python,Python,仅当参数不为null时,如何在python中包含参数?如果我将有效的颜色传递给doSomething方法,下面的代码可以正常工作。现在color有时是null(就像java中的null,我猜在python中是None或nil),这是printColor抛出异常时的情况。我怎样才能避免这种情况 参数packageNamespace的类型无效,值:None response = client.printColor( color = color # Only include t

仅当参数不为null时,如何在python中包含参数?如果我将有效的颜色传递给doSomething方法,下面的代码可以正常工作。现在color有时是null(就像java中的null,我猜在python中是None或nil),这是printColor抛出异常时的情况。我怎样才能避免这种情况

参数packageNamespace的类型无效,值:None

response = client.printColor(
            color = color # Only include this param is not None/Null
   )

response = client.printColor() # this works

您可以从dict中筛选出
None
s:

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,
    ⋮
))

不过,这可能不是解决问题的最佳方案。如果您可以显示实际函数['s documentation]。

您可以从dict中筛选出
None
s:

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,
    ⋮
))

不过,这可能不是解决问题的最佳方案。如果您可以显示实际函数['s documentation],这将是一个理想的选择。

您只需检查无并分派到函数的正确调用即可。如果你想发疯,像这样的事情可能会奏效;response=client.printColor(*arg),但我看不出有什么好处。
response=client.printColor(color)如果color不是其他的client.printColor()
是否属于某个公共包,我们可以查看其文档?这是一个示例方法,实际方法有大量参数,这些参数可以为null。所以我不能为每个可能的组合编写代码。正在查找泛型。@user93796是否可以修改
client.printColor
方法?只需检查无并分派到函数的正确调用即可。如果你想发疯,像这样的事情可能会奏效;response=client.printColor(*arg),但我看不出有什么好处。
response=client.printColor(color)如果color不是其他的client.printColor()
是否属于某个公共包,我们可以查看其文档?这是一个示例方法,实际方法有大量参数,这些参数可以为null。所以我不能为每个可能的组合编写代码。正在查找泛型。@user93796能否修改
client.printColor
方法?