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

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

func(a="hello", config) 

func(b="hello", config) 

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

【问题讨论】:

标签: python python-3.x function logic


【解决方案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)

【讨论】:

  • 我认为你应该解开字典
  • 我希望配置是最后一个参数
猜你喜欢
  • 1970-01-01
  • 2021-03-25
  • 2017-01-15
  • 2014-08-02
  • 1970-01-01
  • 2017-06-14
相关资源
最近更新 更多