关于Python:Python – 在必需参数之前的可选参数

Python - optional parameters before the required ones

1
def func(a,  b,  c,  config)

我将始终需要选择三个选项中的一个(A、B、C),并且始终需要配置。它的工作方式应该是:

1
func(a="hello", config)

1
func(b="hello", config)

是否可以将可选参数置于所需参数之前?


使用默认参数。

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

使用词典

1
2
3
4
5
6
7
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)

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

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