Python - 必需参数之前的可选参数

Posted

技术标签:

【中文标题】Python - 必需参数之前的可选参数【英文标题】:Python - optional parameters before the required ones 【发布时间】:2018-11-05 13:01:15 【问题描述】:
def func(a,  b,  c,  config)

我总是需要从三个(a,b,c)中选择一个,并且总是需要配置。 它应该像这样工作:

func(a="hello", config) 

func(b="hello", config) 

是否可以将可选参数放在必需参数之前?

【问题讨论】:

已经回复Here。 How do I create a Python function with optional arguments?的可能重复 【参考方案1】:

使用默认参数。

def func(config, a = None, b = None, c = None):
    pass
func(config, b="B")

使用字典

params = "config": myConfig, "b": valB  # you want b here
def func(**params):
    config = params["config"]
    a = params.get("a")
    b = params.get("b")
    c = params.get("c")
func(params)

编辑:如果您希望配置始终是最后一个,请将其用作

def func(a=None, b=None, c=None, config=None):
    pass
func(b=valB, config=myConfig)

【讨论】:

我认为你应该解开字典 我希望配置是最后一个参数

以上是关于Python - 必需参数之前的可选参数的主要内容,如果未能解决你的问题,请参考以下文章

PHP函数中的可选参数不考虑顺序

Hibernate中带有命名查询的可选参数?

Argparse - 子解析器中位置参数之前的可选参数

Wsdl 可选参数在生成的 java 存根代码中成为必需的

Argparse:“可选参数”下列出的必需参数?

argparse 必需参数列表与可选参数列表竞争